home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1990-05-01 | 26.6 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| ZX81 Sinclair BASIC (image/sinclairBASIC)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Tue May 1 12:00:00 1990, modified Tue May 1 12:00:00 1990, creator 'MPS ', type ASCII, 25442 bytes "UOffscreen.inc1.p" , at 0x63e2 1604 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 11 55 4f 66 66 73 63 | 72 65 65 6e 2e 69 6e 63 |..UOffsc|reen.inc|
|00000010| 31 2e 70 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |1.p.....|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 63 62 00 | 00 06 44 a2 63 63 00 a2 |.....cb.|..D.cc..|
|00000060| 63 63 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |cc......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 2c ed 00 00 |........|....,...|
|00000080| 7b 5b 6a 3d 32 30 2f 35 | 33 2f 31 24 5d 20 50 61 |{[j=20/5|3/1$] Pa|
|00000090| 73 6d 61 74 20 4f 70 74 | 69 6f 6e 73 7d 0d 0d 7b |smat Opt|ions}..{|
|000000a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000100| 2d 2d 7d 0d 7b 24 53 20 | 41 4f 70 65 6e 7d 0d 0d |--}.{$S |AOpen}..|
|00000110| 50 52 4f 43 45 44 55 52 | 45 20 54 4f 66 66 73 63 |PROCEDUR|E TOffsc|
|00000120| 72 65 65 6e 2e 49 4f 66 | 66 73 63 72 65 65 6e 3b |reen.IOf|fscreen;|
|00000130| 0d 0d 7b 20 49 6e 69 74 | 69 61 6c 69 7a 65 20 74 |..{ Init|ialize t|
|00000140| 68 65 20 6f 66 66 73 63 | 72 65 65 6e 20 77 6f 72 |he offsc|reen wor|
|00000150| 6c 64 2e 20 54 68 69 73 | 20 4e 49 4c 73 20 6f 75 |ld. This| NILs ou|
|00000160| 74 20 6f 75 72 20 69 6e | 73 74 61 6e 63 65 20 76 |t our in|stance v|
|00000170| 61 72 69 61 62 6c 65 73 | 20 61 6e 64 20 63 61 6c |ariables| and cal|
|00000180| 6c 73 20 49 4f 62 6a 65 | 63 74 2e 20 7d 0d 0d 09 |ls IObje|ct. }...|
|00000190| 42 45 47 49 4e 0d 09 09 | 66 4f 6c 64 50 6f 72 74 |BEGIN...|fOldPort|
|000001a0| 20 3a 3d 20 4e 49 4c 3b | 0d 09 09 66 4f 6c 64 44 | := NIL;|...fOldD|
|000001b0| 65 76 69 63 65 20 3a 3d | 20 4e 49 4c 3b 0d 09 09 |evice :=| NIL;...|
|000001c0| 53 45 4c 46 2e 49 4f 62 | 6a 65 63 74 3b 0d 09 45 |SELF.IOb|ject;..E|
|000001d0| 4e 44 3b 0d 0d 7b 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ND;..{--|--------|
|000001e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000230| 2d 2d 2d 2d 2d 2d 2d 2d | 7d 0d 7b 24 53 20 41 52 |--------|}.{$S AR|
|00000240| 65 73 7d 0d 0d 50 52 4f | 43 45 44 55 52 45 20 54 |es}..PRO|CEDURE T|
|00000250| 4f 66 66 73 63 72 65 65 | 6e 2e 43 68 61 6e 67 65 |Offscree|n.Change|
|00000260| 43 54 46 6c 61 67 28 77 | 68 69 63 68 42 69 74 3a |CTFlag(w|hichBit:|
|00000270| 20 49 6e 74 65 67 65 72 | 3b 20 77 68 69 63 68 57 | Integer|; whichW|
|00000280| 61 79 3a 20 42 6f 6f 6c | 65 61 6e 29 3b 0d 0d 7b |ay: Bool|ean);..{|
|00000290| 20 53 65 74 73 20 74 68 | 65 20 73 74 61 74 65 20 | Sets th|e state |
|000002a0| 6f 66 20 61 20 66 6c 61 | 67 20 69 6e 20 74 68 65 |of a fla|g in the|
|000002b0| 20 63 74 46 6c 61 67 73 | 20 66 69 65 6c 64 20 6f | ctFlags| field o|
|000002c0| 66 20 6f 75 72 20 6f 66 | 66 73 63 72 65 65 6e 20 |f our of|fscreen |
|000002d0| 77 6f 72 6c 64 2e 20 54 | 68 69 73 20 69 73 20 6e |world. T|his is n|
|000002e0| 65 65 64 65 64 20 69 6e | 20 61 74 0d 20 20 6c 65 |eeded in| at. le|
|000002f0| 61 73 74 20 6f 6e 65 20 | 63 61 73 65 2c 20 77 68 |ast one |case, wh|
|00000300| 65 72 65 20 77 65 20 68 | 61 76 65 20 74 6f 20 63 |ere we h|ave to c|
|00000310| 6c 65 61 72 20 62 69 74 | 20 31 34 20 62 65 66 6f |lear bit| 14 befo|
|00000320| 72 65 20 73 61 76 69 6e | 67 20 74 68 65 20 63 6f |re savin|g the co|
|00000330| 6c 6f 72 20 74 61 62 6c | 65 20 74 6f 20 64 69 73 |lor tabl|e to dis|
|00000340| 6b 2e 20 54 68 69 73 0d | 20 20 72 6f 75 74 69 6e |k. This.| routin|
|00000350| 65 20 77 69 6c 6c 20 65 | 69 74 68 65 72 20 63 6c |e will e|ither cl|
|00000360| 65 61 72 20 6f 72 20 73 | 65 74 20 74 68 65 20 62 |ear or s|et the b|
|00000370| 69 74 2e 20 7d 0d 0d 09 | 56 41 52 0d 09 09 66 72 |it. }...|VAR...fr|
|00000380| 65 64 3a 09 09 09 09 4c | 6f 6e 67 49 6e 74 3b 0d |ed:....L|ongInt;.|
|00000390| 0d 09 42 45 47 49 4e 0d | 09 09 66 72 65 64 20 3a |..BEGIN.|..fred :|
|000003a0| 3d 20 47 65 74 4f 66 66 | 50 6f 72 74 5e 2e 70 6f |= GetOff|Port^.po|
|000003b0| 72 74 50 69 78 4d 61 70 | 5e 5e 2e 70 6d 54 61 62 |rtPixMap|^^.pmTab|
|000003c0| 6c 65 5e 5e 2e 63 74 46 | 6c 61 67 73 3b 0d 09 09 |le^^.ctF|lags;...|
|000003d0| 49 46 20 77 68 69 63 68 | 57 61 79 20 3d 20 6b 43 |IF which|Way = kC|
|000003e0| 6c 65 61 72 46 6c 61 67 | 20 54 48 45 4e 0d 09 09 |learFlag| THEN...|
|000003f0| 09 42 43 6c 72 28 66 72 | 65 64 2c 20 77 68 69 63 |.BClr(fr|ed, whic|
|00000400| 68 42 69 74 29 0d 09 09 | 45 4c 53 45 0d 09 09 09 |hBit)...|ELSE....|
|00000410| 42 53 65 74 28 66 72 65 | 64 2c 20 77 68 69 63 68 |BSet(fre|d, which|
|00000420| 42 69 74 29 3b 0d 09 09 | 47 65 74 4f 66 66 50 6f |Bit);...|GetOffPo|
|00000430| 72 74 5e 2e 70 6f 72 74 | 50 69 78 4d 61 70 5e 5e |rt^.port|PixMap^^|
|00000440| 2e 70 6d 54 61 62 6c 65 | 5e 5e 2e 63 74 46 6c 61 |.pmTable|^^.ctFla|
|00000450| 67 73 20 3a 3d 20 66 72 | 65 64 3b 0d 09 45 4e 44 |gs := fr|ed;..END|
|00000460| 3b 0d 0d 7b 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;..{----|--------|
|00000470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004c0| 2d 2d 2d 2d 2d 2d 7d 0d | 7b 24 53 20 41 52 65 73 |------}.|{$S ARes|
|000004d0| 7d 0d 0d 46 55 4e 43 54 | 49 4f 4e 20 54 4f 66 66 |}..FUNCT|ION TOff|
|000004e0| 73 63 72 65 65 6e 2e 47 | 65 74 4f 66 66 44 65 76 |screen.G|etOffDev|
|000004f0| 69 63 65 3a 20 47 44 48 | 61 6e 64 6c 65 3b 0d 0d |ice: GDH|andle;..|
|00000500| 7b 20 52 65 74 75 72 6e | 20 61 20 47 44 48 61 6e |{ Return| a GDHan|
|00000510| 64 6c 65 20 74 6f 20 74 | 68 65 20 6f 66 66 73 63 |dle to t|he offsc|
|00000520| 72 65 65 6e 20 64 65 76 | 69 63 65 2e 20 54 4f 66 |reen dev|ice. TOf|
|00000530| 66 53 63 72 65 65 6e 20 | 64 6f 65 73 6e d5 74 20 |fScreen |doesn.t |
|00000540| 6d 61 6e 61 67 65 20 61 | 6e 79 20 6f 66 66 73 63 |manage a|ny offsc|
|00000550| 72 65 65 6e 0d 20 20 65 | 6c 65 6d 65 6e 74 73 20 |reen. e|lements |
|00000560| 69 74 73 65 6c 66 2c 20 | 73 6f 20 69 74 20 63 61 |itself, |so it ca|
|00000570| 6e d5 74 20 72 65 74 75 | 72 6e 20 61 6e 79 74 68 |n.t retu|rn anyth|
|00000580| 69 6e 67 20 75 73 65 66 | 75 6c 20 68 65 72 65 2e |ing usef|ul here.|
|00000590| 20 54 68 65 20 6d 61 69 | 6e 20 69 6e 74 65 6e 74 | The mai|n intent|
|000005a0| 20 69 73 20 74 6f 20 68 | 61 76 65 20 61 6e 0d 20 | is to h|ave an. |
|000005b0| 20 61 62 73 74 72 61 63 | 74 20 6d 65 74 68 6f 64 | abstrac|t method|
|000005c0| 20 74 68 61 74 20 77 65 | 20 63 61 6e 20 6f 76 65 | that we| can ove|
|000005d0| 72 72 69 64 65 20 74 68 | 61 74 20 57 49 4c 4c 20 |rride th|at WILL |
|000005e0| 72 65 74 75 72 6e 20 73 | 6f 6d 74 68 69 6e 67 2e |return s|omthing.|
|000005f0| 20 49 66 20 6e 6f 74 20 | 6f 76 65 72 72 69 64 64 | If not |overridd|
|00000600| 65 6e 2c 20 74 68 69 73 | 0d 20 20 6d 65 74 68 6f |en, this|. metho|
|00000610| 64 20 63 6f 6d 70 6c 61 | 69 6e 73 20 61 6e 64 20 |d compla|ins and |
|00000620| 72 65 74 75 72 6e 73 20 | 74 68 65 20 64 65 76 69 |returns |the devi|
|00000630| 63 65 20 68 61 6e 64 6c | 65 20 6f 66 20 74 68 65 |ce handl|e of the|
|00000640| 20 4d 61 69 6e 20 44 65 | 76 69 63 65 20 61 73 20 | Main De|vice as |
|00000650| 64 65 66 61 75 6c 74 20 | 73 6f 20 74 68 61 74 20 |default |so that |
|00000660| 77 65 0d 20 20 64 6f 6e | d5 74 20 64 69 65 20 69 |we. don|.t die i|
|00000670| 66 20 69 74 20 69 73 6e | d5 74 20 6f 76 65 72 72 |f it isn|.t overr|
|00000680| 69 64 64 65 6e 2e 20 7d | 0d 0d 09 42 45 47 49 4e |idden. }|...BEGIN|
|00000690| 0d 09 09 49 46 20 71 44 | 65 62 75 67 20 54 48 45 |...IF qD|ebug THE|
|000006a0| 4e 20 42 45 47 49 4e 0d | 09 09 09 47 65 74 4f 66 |N BEGIN.|...GetOf|
|000006b0| 66 44 65 76 69 63 65 20 | 3a 3d 20 47 65 74 4d 61 |fDevice |:= GetMa|
|000006c0| 69 6e 44 65 76 69 63 65 | 3b 0d 09 09 09 50 72 6f |inDevice|;....Pro|
|000006d0| 67 72 61 6d 42 72 65 61 | 6b 28 0d 09 09 09 09 20 |gramBrea|k(..... |
|000006e0| 20 20 27 54 4f 66 66 73 | 63 72 65 65 6e 2e 47 65 | 'TOffs|creen.Ge|
|000006f0| 74 4f 66 66 44 65 76 69 | 63 65 3a 20 4e 6f 74 20 |tOffDevi|ce: Not |
|00000700| 6f 76 65 72 72 69 64 64 | 65 6e 2e 20 52 65 74 75 |overridd|en. Retu|
|00000710| 72 6e 69 6e 67 20 47 65 | 74 4d 61 69 6e 44 65 76 |rning Ge|tMainDev|
|00000720| 69 63 65 20 72 65 73 75 | 6c 74 2e 27 0d 09 09 09 |ice resu|lt.'....|
|00000730| 09 09 09 20 29 3b 0d 09 | 09 45 4e 44 3b 0d 09 45 |... );..|.END;..E|
|00000740| 4e 44 3b 0d 0d 7b 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ND;..{--|--------|
|00000750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000007a0| 2d 2d 2d 2d 2d 2d 2d 2d | 7d 0d 7b 24 53 20 41 52 |--------|}.{$S AR|
|000007b0| 65 73 7d 0d 0d 46 55 4e | 43 54 49 4f 4e 20 54 4f |es}..FUN|CTION TO|
|000007c0| 66 66 73 63 72 65 65 6e | 2e 47 65 74 4f 66 66 50 |ffscreen|.GetOffP|
|000007d0| 69 78 42 61 73 65 3a 20 | 50 74 72 3b 0d 0d 7b 20 |ixBase: |Ptr;..{ |
|000007e0| 52 65 74 75 72 6e 20 61 | 20 50 74 72 20 74 6f 20 |Return a| Ptr to |
|000007f0| 74 68 65 20 6f 66 66 73 | 63 72 65 65 6e 20 62 75 |the offs|creen bu|
|00000800| 66 66 65 72 20 62 6c 6f | 63 6b 2e 20 54 4f 66 66 |ffer blo|ck. TOff|
|00000810| 53 63 72 65 65 6e 20 64 | 6f 65 73 6e d5 74 20 6d |Screen d|oesn.t m|
|00000820| 61 6e 61 67 65 20 61 6e | 79 20 6f 66 66 73 63 72 |anage an|y offscr|
|00000830| 65 65 6e 0d 20 20 65 6c | 65 6d 65 6e 74 73 20 69 |een. el|ements i|
|00000840| 74 73 65 6c 66 2c 20 73 | 6f 20 69 74 20 63 61 6e |tself, s|o it can|
|00000850| d5 74 20 72 65 74 75 72 | 6e 20 61 6e 79 74 68 69 |.t retur|n anythi|
|00000860| 6e 67 20 75 73 65 66 75 | 6c 20 68 65 72 65 2e 20 |ng usefu|l here. |
|00000870| 54 68 65 20 6d 61 69 6e | 20 69 6e 74 65 6e 74 20 |The main| intent |
|00000880| 69 73 20 74 6f 20 68 61 | 76 65 20 61 6e 0d 20 20 |is to ha|ve an. |
|00000890| 61 62 73 74 72 61 63 74 | 20 6d 65 74 68 6f 64 20 |abstract| method |
|000008a0| 74 68 61 74 20 77 65 20 | 63 61 6e 20 6f 76 65 72 |that we |can over|
|000008b0| 72 69 64 65 20 74 68 61 | 74 20 57 49 4c 4c 20 72 |ride tha|t WILL r|
|000008c0| 65 74 75 72 6e 20 73 6f | 6d 74 68 69 6e 67 2e 20 |eturn so|mthing. |
|000008d0| 49 66 20 6e 6f 74 20 6f | 76 65 72 72 69 64 64 65 |If not o|verridde|
|000008e0| 6e 2c 20 74 68 69 73 0d | 20 20 6d 65 74 68 6f 64 |n, this.| method|
|000008f0| 20 63 6f 6d 70 6c 61 69 | 6e 73 20 61 6e 64 20 72 | complai|ns and r|
|00000900| 65 74 75 72 6e 73 20 74 | 68 65 20 62 61 73 65 20 |eturns t|he base |
|00000910| 61 64 64 72 65 73 73 20 | 6f 66 20 d2 74 68 65 50 |address |of .theP|
|00000920| 6f 72 74 d3 20 61 73 20 | 64 65 66 61 75 6c 74 20 |ort. as |default |
|00000930| 73 6f 20 74 68 61 74 20 | 77 65 20 64 6f 6e d5 74 |so that |we don.t|
|00000940| 20 64 69 65 0d 20 20 69 | 66 20 69 74 20 69 73 6e | die. i|f it isn|
|00000950| d5 74 20 6f 76 65 72 72 | 69 64 64 65 6e 2e 20 7d |.t overr|idden. }|
|00000960| 0d 0d 09 42 45 47 49 4e | 0d 09 09 49 46 20 71 44 |...BEGIN|...IF qD|
|00000970| 65 62 75 67 20 54 48 45 | 4e 20 42 45 47 49 4e 0d |ebug THE|N BEGIN.|
|00000980| 09 09 09 49 46 20 42 4f | 72 28 24 30 43 30 30 30 |...IF BO|r($0C000|
|00000990| 2c 20 43 47 72 61 66 50 | 74 72 28 74 68 65 50 6f |, CGrafP|tr(thePo|
|000009a0| 72 74 29 5e 2e 70 6f 72 | 74 56 65 72 73 69 6f 6e |rt)^.por|tVersion|
|000009b0| 29 20 3d 20 30 20 54 48 | 45 4e 20 42 45 47 49 4e |) = 0 TH|EN BEGIN|
|000009c0| 0d 09 09 09 09 7b 20 6f | 6c 64 20 73 74 79 6c 65 |.....{ o|ld style|
|000009d0| 20 42 26 57 20 67 72 61 | 66 50 6f 72 74 20 7d 0d | B&W gra|fPort }.|
|000009e0| 09 09 09 09 47 65 74 4f | 66 66 50 69 78 42 61 73 |....GetO|ffPixBas|
|000009f0| 65 20 3a 3d 20 74 68 65 | 50 6f 72 74 5e 2e 70 6f |e := the|Port^.po|
|00000a00| 72 74 42 69 74 73 2e 62 | 61 73 65 41 64 64 72 3b |rtBits.b|aseAddr;|
|00000a10| 0d 09 09 09 45 4e 44 0d | 09 09 09 45 4c 53 45 20 |....END.|...ELSE |
|00000a20| 42 45 47 49 4e 0d 09 09 | 09 09 7b 20 6e 65 77 20 |BEGIN...|..{ new |
|00000a30| 73 74 79 6c 65 20 63 6f | 6c 6f 72 20 43 47 72 61 |style co|lor CGra|
|00000a40| 66 50 6f 72 74 20 7d 0d | 09 09 09 09 47 65 74 4f |fPort }.|....GetO|
|00000a50| 66 66 50 69 78 42 61 73 | 65 20 3a 3d 20 43 47 72 |ffPixBas|e := CGr|
|00000a60| 61 66 50 74 72 28 74 68 | 65 50 6f 72 74 29 5e 2e |afPtr(th|ePort)^.|
|00000a70| 70 6f 72 74 50 69 78 4d | 61 70 5e 5e 2e 62 61 73 |portPixM|ap^^.bas|
|00000a80| 65 41 64 64 72 3b 0d 09 | 09 09 45 4e 44 3b 0d 09 |eAddr;..|..END;..|
|00000a90| 09 09 50 72 6f 67 72 61 | 6d 42 72 65 61 6b 28 0d |..Progra|mBreak(.|
|00000aa0| 09 09 09 09 09 20 20 27 | 54 4f 66 66 73 63 72 65 |..... '|TOffscre|
|00000ab0| 65 6e 2e 47 65 74 4f 66 | 66 50 69 78 42 61 73 65 |en.GetOf|fPixBase|
|00000ac0| 3a 20 4e 6f 74 20 6f 76 | 65 72 72 69 64 64 65 6e |: Not ov|erridden|
|00000ad0| 2e 20 52 65 74 75 72 6e | 69 6e 67 20 74 68 65 50 |. Return|ing theP|
|00000ae0| 6f 72 74 2e 62 61 73 65 | 41 64 64 72 2e 27 0d 09 |ort.base|Addr.'..|
|00000af0| 09 09 09 09 09 20 29 3b | 0d 09 09 45 4e 44 3b 0d |..... );|...END;.|
|00000b00| 09 45 4e 44 3b 0d 0d 7b | 2d 2d 2d 2d 2d 2d 2d 2d |.END;..{|--------|
|00000b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 7d 0d 7b 24 53 20 |--------|--}.{$S |
|00000b70| 41 52 65 73 7d 0d 0d 46 | 55 4e 43 54 49 4f 4e 20 |ARes}..F|UNCTION |
|00000b80| 54 4f 66 66 73 63 72 65 | 65 6e 2e 47 65 74 4f 66 |TOffscre|en.GetOf|
|00000b90| 66 50 6f 72 74 3a 20 43 | 47 72 61 66 50 74 72 3b |fPort: C|GrafPtr;|
|00000ba0| 0d 0d 7b 20 52 65 74 75 | 72 6e 20 61 20 43 47 72 |..{ Retu|rn a CGr|
|00000bb0| 61 66 50 74 72 20 74 6f | 20 74 68 65 20 6f 66 66 |afPtr to| the off|
|00000bc0| 73 63 72 65 65 6e 20 70 | 6f 72 74 2e 20 54 4f 66 |screen p|ort. TOf|
|00000bd0| 66 53 63 72 65 65 6e 20 | 64 6f 65 73 6e d5 74 20 |fScreen |doesn.t |
|00000be0| 6d 61 6e 61 67 65 20 61 | 6e 79 20 6f 66 66 73 63 |manage a|ny offsc|
|00000bf0| 72 65 65 6e 20 65 6c 65 | 6d 65 6e 74 73 0d 20 20 |reen ele|ments. |
|00000c00| 69 74 73 65 6c 66 2c 20 | 73 6f 20 69 74 20 63 61 |itself, |so it ca|
|00000c10| 6e d5 74 20 72 65 74 75 | 72 6e 20 61 6e 79 74 68 |n.t retu|rn anyth|
|00000c20| 69 6e 67 20 75 73 65 66 | 75 6c 20 68 65 72 65 2e |ing usef|ul here.|
|00000c30| 20 54 68 65 20 6d 61 69 | 6e 20 69 6e 74 65 6e 74 | The mai|n intent|
|00000c40| 20 69 73 20 74 6f 20 68 | 61 76 65 20 61 6e 20 61 | is to h|ave an a|
|00000c50| 62 73 74 72 61 63 74 0d | 20 20 6d 65 74 68 6f 64 |bstract.| method|
|00000c60| 20 74 68 61 74 20 77 65 | 20 63 61 6e 20 6f 76 65 | that we| can ove|
|00000c70| 72 72 69 64 65 20 74 68 | 61 74 20 57 49 4c 4c 20 |rride th|at WILL |
|00000c80| 72 65 74 75 72 6e 20 73 | 6f 6d 74 68 69 6e 67 2e |return s|omthing.|
|00000c90| 20 49 66 20 6e 6f 74 20 | 6f 76 65 72 72 69 64 64 | If not |overridd|
|00000ca0| 65 6e 2c 20 74 68 69 73 | 20 6d 65 74 68 6f 64 0d |en, this| method.|
|00000cb0| 20 20 63 6f 6d 70 6c 61 | 69 6e 73 20 61 6e 64 20 | compla|ins and |
|00000cc0| 72 65 74 75 72 6e 73 20 | d4 74 68 65 50 6f 72 74 |returns |.thePort|
|00000cd0| d5 20 61 73 20 64 65 66 | 61 75 6c 74 20 73 6f 20 |. as def|ault so |
|00000ce0| 74 68 61 74 20 77 65 20 | 64 6f 6e d5 74 20 64 69 |that we |don.t di|
|00000cf0| 65 20 69 66 20 69 74 20 | 69 73 6e d5 74 20 6f 76 |e if it |isn.t ov|
|00000d00| 65 72 72 69 64 64 65 6e | 2e 20 7d 0d 0d 09 42 45 |erridden|. }...BE|
|00000d10| 47 49 4e 0d 09 09 49 46 | 20 71 44 65 62 75 67 20 |GIN...IF| qDebug |
|00000d20| 54 48 45 4e 20 42 45 47 | 49 4e 0d 09 09 09 47 65 |THEN BEG|IN....Ge|
|00000d30| 74 4f 66 66 50 6f 72 74 | 20 3a 3d 20 43 47 72 61 |tOffPort| := CGra|
|00000d40| 66 50 74 72 28 74 68 65 | 50 6f 72 74 29 3b 0d 09 |fPtr(the|Port);..|
|00000d50| 09 09 50 72 6f 67 72 61 | 6d 42 72 65 61 6b 28 27 |..Progra|mBreak('|
|00000d60| 54 4f 66 66 73 63 72 65 | 65 6e 2e 47 65 74 4f 66 |TOffscre|en.GetOf|
|00000d70| 66 50 6f 72 74 3a 20 4e | 6f 74 20 6f 76 65 72 72 |fPort: N|ot overr|
|00000d80| 69 64 64 65 6e 2e 20 52 | 65 74 75 72 6e 69 6e 67 |idden. R|eturning|
|00000d90| 20 d2 74 68 65 50 6f 72 | 74 d3 2e 27 29 3b 0d 09 | .thePor|t..');..|
|00000da0| 09 45 4e 44 3b 0d 09 45 | 4e 44 3b 0d 0d 7b 2d 2d |.END;..E|ND;..{--|
|00000db0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000dd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000de0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000df0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e10| 7d 0d 7b 24 53 20 41 52 | 65 73 7d 0d 0d 46 55 4e |}.{$S AR|es}..FUN|
|00000e20| 43 54 49 4f 4e 20 54 4f | 66 66 73 63 72 65 65 6e |CTION TO|ffscreen|
|00000e30| 2e 47 65 74 4f 6c 64 44 | 65 76 69 63 65 3a 20 47 |.GetOldD|evice: G|
|00000e40| 44 48 61 6e 64 6c 65 3b | 0d 0d 7b 20 52 65 74 75 |DHandle;|..{ Retu|
|00000e50| 72 6e 20 61 20 47 44 48 | 61 6e 64 6c 65 20 74 6f |rn a GDH|andle to|
|00000e60| 20 74 68 65 20 73 61 76 | 65 64 20 64 65 76 69 63 | the sav|ed devic|
|00000e70| 65 2e 20 7d 0d 0d 09 42 | 45 47 49 4e 0d 09 09 47 |e. }...B|EGIN...G|
|00000e80| 65 74 4f 6c 64 44 65 76 | 69 63 65 20 3a 3d 20 66 |etOldDev|ice := f|
|00000e90| 4f 6c 64 44 65 76 69 63 | 65 3b 0d 09 45 4e 44 3b |OldDevic|e;..END;|
|00000ea0| 0d 0d 7b 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..{-----|--------|
|00000eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f00| 2d 2d 2d 2d 2d 7d 0d 7b | 24 53 20 41 52 65 73 7d |-----}.{|$S ARes}|
|00000f10| 0d 0d 46 55 4e 43 54 49 | 4f 4e 20 54 4f 66 66 73 |..FUNCTI|ON TOffs|
|00000f20| 63 72 65 65 6e 2e 47 65 | 74 4f 6c 64 50 6f 72 74 |creen.Ge|tOldPort|
|00000f30| 3a 20 47 72 61 66 50 74 | 72 3b 0d 0d 7b 20 52 65 |: GrafPt|r;..{ Re|
|00000f40| 74 75 72 6e 20 61 20 47 | 72 61 66 50 74 72 20 74 |turn a G|rafPtr t|
|00000f50| 6f 20 74 68 65 20 73 61 | 76 65 64 20 70 6f 72 74 |o the sa|ved port|
|00000f60| 2e 20 7d 0d 0d 09 42 45 | 47 49 4e 0d 09 09 47 65 |. }...BE|GIN...Ge|
|00000f70| 74 4f 6c 64 50 6f 72 74 | 20 3a 3d 20 66 4f 6c 64 |tOldPort| := fOld|
|00000f80| 50 6f 72 74 3b 0d 09 45 | 4e 44 3b 0d 0d 7b 2d 2d |Port;..E|ND;..{--|
|00000f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fe0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ff0| 7d 0d 7b 24 53 20 41 52 | 65 73 7d 0d 0d 50 52 4f |}.{$S AR|es}..PRO|
|00001000| 43 45 44 55 52 45 20 54 | 4f 66 66 73 63 72 65 65 |CEDURE T|Offscree|
|00001010| 6e 2e 4c 6f 63 6b 54 68 | 65 50 69 78 65 6c 73 3b |n.LockTh|ePixels;|
|00001020| 0d 0d 7b 20 46 6f 72 20 | 33 32 42 43 51 44 20 73 |..{ For |32BCQD s|
|00001030| 75 70 70 6f 72 74 2e 20 | 44 6f 65 73 20 6e 6f 74 |upport. |Does not|
|00001040| 68 69 6e 67 20 62 79 20 | 64 65 66 61 75 6c 74 2e |hing by |default.|
|00001050| 20 53 68 6f 75 6c 64 20 | 62 65 20 6f 76 65 72 72 | Should |be overr|
|00001060| 69 64 64 65 6e 20 69 66 | 20 79 6f 75 20 61 72 65 |idden if| you are|
|00001070| 20 75 73 69 6e 67 20 74 | 68 65 0d 20 20 33 32 2d | using t|he. 32-|
|00001080| 62 69 74 20 43 6f 6c 6f | 72 20 51 75 69 63 6b 44 |bit Colo|r QuickD|
|00001090| 72 61 77 20 72 6f 75 74 | 69 6e 65 73 20 66 6f 72 |raw rout|ines for|
|000010a0| 20 6f 66 66 73 63 72 65 | 65 6e 20 73 75 70 70 6f | offscre|en suppo|
|000010b0| 72 74 2c 20 61 6e 64 20 | 6e 65 65 64 20 74 6f 20 |rt, and |need to |
|000010c0| 6c 6f 63 6b 20 64 6f 77 | 6e 20 79 6f 75 72 20 70 |lock dow|n your p|
|000010d0| 69 78 65 6c 73 0d 20 20 | 62 65 66 6f 72 65 20 61 |ixels. |before a|
|000010e0| 63 63 65 73 73 69 6e 67 | 20 74 68 65 6d 2e 20 7d |ccessing| them. }|
|000010f0| 0d 0d 09 42 45 47 49 4e | 0d 09 45 4e 44 3b 0d 0d |...BEGIN|..END;..|
|00001100| 7b 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |{-------|--------|
|00001110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001160| 2d 2d 2d 7d 0d 7b 24 53 | 20 41 52 65 73 7d 0d 0d |---}.{$S| ARes}..|
|00001170| 50 52 4f 43 45 44 55 52 | 45 20 54 4f 66 66 73 63 |PROCEDUR|E TOffsc|
|00001180| 72 65 65 6e 2e 50 72 65 | 44 72 61 77 3b 0d 0d 7b |reen.Pre|Draw;..{|
|00001190| 20 43 61 6c 6c 20 74 68 | 69 73 20 6d 65 74 68 6f | Call th|is metho|
|000011a0| 64 20 74 6f 20 73 61 76 | 65 20 6f 66 66 20 74 68 |d to sav|e off th|
|000011b0| 65 20 63 75 72 72 65 6e | 74 20 64 72 61 77 69 6e |e curren|t drawin|
|000011c0| 67 20 77 6f 72 6c 64 20 | 61 6e 64 20 73 77 61 70 |g world |and swap|
|000011d0| 20 69 6e 20 74 68 65 20 | 6f 66 66 73 63 72 65 65 | in the |offscree|
|000011e0| 6e 20 64 72 61 77 69 6e | 67 0d 20 20 77 6f 72 6c |n drawin|g. worl|
|000011f0| 64 2e 20 49 74 20 63 61 | 6c 6c 73 20 53 61 76 65 |d. It ca|lls Save|
|00001200| 4f 6c 64 57 6f 72 64 20 | 61 6e 64 20 53 65 74 55 |OldWord |and SetU|
|00001210| 70 4f 66 66 57 6f 72 6c | 64 20 74 6f 20 64 6f 20 |pOffWorl|d to do |
|00001220| 61 6c 6c 20 74 68 65 20 | 64 69 72 74 79 20 77 6f |all the |dirty wo|
|00001230| 72 6b 2e 20 53 69 6e 63 | 65 20 74 68 65 73 65 0d |rk. Sinc|e these.|
|00001240| 20 20 6d 65 74 68 6f 64 | 73 20 64 6f 20 6e 6f 74 | method|s do not|
|00001250| 68 69 6e 67 20 69 6e 20 | 54 4f 66 66 53 63 72 65 |hing in |TOffScre|
|00001260| 65 6e 2c 20 79 6f 75 20 | 6d 75 73 74 20 6f 76 65 |en, you |must ove|
|00001270| 72 72 69 64 65 20 74 68 | 65 6d 20 69 6e 20 79 6f |rride th|em in yo|
|00001280| 75 72 20 73 75 62 2d 63 | 6c 61 73 73 2e 20 7d 0d |ur sub-c|lass. }.|
|00001290| 0d 09 42 45 47 49 4e 0d | 09 09 53 45 4c 46 2e 53 |..BEGIN.|..SELF.S|
|000012a0| 61 76 65 4f 6c 64 57 6f | 72 6c 64 3b 0d 09 09 53 |aveOldWo|rld;...S|
|000012b0| 45 4c 46 2e 53 65 74 75 | 70 4f 66 66 57 6f 72 6c |ELF.Setu|pOffWorl|
|000012c0| 64 3b 0d 09 45 4e 44 3b | 0d 0d 7b 2d 2d 2d 2d 2d |d;..END;|..{-----|
|000012d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000012e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000012f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 7d 0d 7b |--------|-----}.{|
|00001330| 24 53 20 41 52 65 73 7d | 0d 0d 50 52 4f 43 45 44 |$S ARes}|..PROCED|
|00001340| 55 52 45 20 54 4f 66 66 | 73 63 72 65 65 6e 2e 50 |URE TOff|screen.P|
|00001350| 6f 73 74 44 72 61 77 3b | 0d 0d 7b 20 52 65 76 65 |ostDraw;|..{ Reve|
|00001360| 72 73 65 73 20 74 68 65 | 20 65 66 66 65 63 74 73 |rses the| effects|
|00001370| 20 6f 66 20 50 72 65 44 | 72 61 77 20 62 79 20 72 | of PreD|raw by r|
|00001380| 65 73 74 6f 72 69 6e 67 | 20 74 68 65 20 70 72 65 |estoring| the pre|
|00001390| 76 69 6f 75 73 6c 79 20 | 73 61 76 65 20 70 6f 72 |viously |save por|
|000013a0| 74 20 61 6e 64 20 64 65 | 76 69 63 65 2e 20 7d 0d |t and de|vice. }.|
|000013b0| 0d 09 42 45 47 49 4e 0d | 09 09 53 45 4c 46 2e 52 |..BEGIN.|..SELF.R|
|000013c0| 65 73 74 6f 72 65 4f 6c | 64 57 6f 72 6c 64 3b 0d |estoreOl|dWorld;.|
|000013d0| 09 45 4e 44 3b 0d 0d 7b | 2d 2d 2d 2d 2d 2d 2d 2d |.END;..{|--------|
|000013e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001430| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 7d 0d 7b 24 53 20 |--------|--}.{$S |
|00001440| 41 52 65 73 7d 0d 0d 50 | 52 4f 43 45 44 55 52 45 |ARes}..P|ROCEDURE|
|00001450| 20 54 4f 66 66 73 63 72 | 65 65 6e 2e 52 65 73 74 | TOffscr|een.Rest|
|00001460| 6f 72 65 4f 6c 64 57 6f | 72 6c 64 3b 0d 0d 09 42 |oreOldWo|rld;...B|
|00001470| 45 47 49 4e 0d 09 09 53 | 65 74 47 44 65 76 69 63 |EGIN...S|etGDevic|
|00001480| 65 28 66 4f 6c 64 44 65 | 76 69 63 65 29 3b 0d 09 |e(fOldDe|vice);..|
|00001490| 09 53 65 74 50 6f 72 74 | 28 66 4f 6c 64 50 6f 72 |.SetPort|(fOldPor|
|000014a0| 74 29 3b 0d 09 09 66 4f | 6c 64 44 65 76 69 63 65 |t);...fO|ldDevice|
|000014b0| 20 3a 3d 20 4e 49 4c 3b | 09 09 09 09 09 09 09 7b | := NIL;|.......{|
|000014c0| 20 43 6c 65 61 72 20 74 | 68 65 73 65 20 6f 75 74 | Clear t|hese out|
|000014d0| 20 73 6f 20 74 68 61 74 | 20 69 66 20 61 6e 79 6f | so that| if anyo|
|000014e0| 6e 65 20 63 61 6c 6c 73 | 0d 09 09 09 09 09 09 09 |ne calls|........|
|000014f0| 09 09 09 09 09 09 20 47 | 65 74 4f 6c 64 44 65 76 |...... G|etOldDev|
|00001500| 69 63 65 20 6f 72 20 47 | 65 74 4f 6c 64 50 6f 72 |ice or G|etOldPor|
|00001510| 74 20 74 68 65 79 d5 6c | 6c 20 67 65 74 0d 09 09 |t they.l|l get...|
|00001520| 09 09 09 09 09 09 09 09 | 09 09 09 20 4e 49 4c 2c |........|... NIL,|
|00001530| 20 6d 65 61 6e 69 6e 67 | 20 74 68 61 74 20 77 65 | meaning| that we|
|00001540| 20 61 72 65 6e d5 74 0d | 09 09 09 09 09 09 09 09 | aren.t.|........|
|00001550| 09 09 09 09 09 20 6f 66 | 66 73 63 72 65 65 6e 69 |..... of|fscreeni|
|00001560| 6e 67 20 72 69 67 68 74 | 20 6e 6f 77 2e 20 7d 0d |ng right| now. }.|
|00001570| 09 09 66 4f 6c 64 50 6f | 72 74 20 3a 3d 20 4e 49 |..fOldPo|rt := NI|
|00001580| 4c 3b 0d 09 45 4e 44 3b | 0d 0d 7b 2d 2d 2d 2d 2d |L;..END;|..{-----|
|00001590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 7d 0d 7b |--------|-----}.{|
|000015f0| 24 53 20 41 52 65 73 7d | 0d 0d 50 52 4f 43 45 44 |$S ARes}|..PROCED|
|00001600| 55 52 45 20 54 4f 66 66 | 73 63 72 65 65 6e 2e 53 |URE TOff|screen.S|
|00001610| 61 76 65 4f 6c 64 57 6f | 72 6c 64 3b 0d 0d 09 42 |aveOldWo|rld;...B|
|00001620| 45 47 49 4e 0d 09 09 66 | 4f 6c 64 44 65 76 69 63 |EGIN...f|OldDevic|
|00001630| 65 20 3a 3d 20 47 65 74 | 47 44 65 76 69 63 65 3b |e := Get|GDevice;|
|00001640| 0d 09 09 7b 24 50 75 73 | 68 7d 20 7b 24 48 2d 7d |...{$Pus|h} {$H-}|
|00001650| 0d 09 09 47 65 74 50 6f | 72 74 28 66 4f 6c 64 50 |...GetPo|rt(fOldP|
|00001660| 6f 72 74 29 3b 0d 09 09 | 7b 24 50 6f 70 7d 0d 09 |ort);...|{$Pop}..|
|00001670| 45 4e 44 3b 0d 0d 7b 2d | 2d 2d 2d 2d 2d 2d 2d 2d |END;..{-|--------|
|00001680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 7d 0d 7b 24 53 20 41 |--------|-}.{$S A|
|000016e0| 52 65 73 7d 0d 0d 50 52 | 4f 43 45 44 55 52 45 20 |Res}..PR|OCEDURE |
|000016f0| 54 4f 66 66 73 63 72 65 | 65 6e 2e 53 65 74 75 70 |TOffscre|en.Setup|
|00001700| 4f 66 66 57 6f 72 6c 64 | 3b 0d 0d 09 42 45 47 49 |OffWorld|;...BEGI|
|00001710| 4e 0d 09 09 49 46 20 71 | 44 65 62 75 67 20 54 48 |N...IF q|Debug TH|
|00001720| 45 4e 0d 09 09 09 50 72 | 6f 67 72 61 6d 42 72 65 |EN....Pr|ogramBre|
|00001730| 61 6b 28 27 54 4f 66 66 | 73 63 72 65 65 6e 2e 53 |ak('TOff|screen.S|
|00001740| 65 74 75 70 4f 66 66 57 | 6f 72 6c 64 3a 20 47 6f |etupOffW|orld: Go|
|00001750| 74 74 61 20 4f 76 65 72 | 72 69 64 65 20 6d 65 21 |tta Over|ride me!|
|00001760| 27 29 3b 0d 09 45 4e 44 | 3b 0d 0d 7b 2d 2d 2d 2d |');..END|;..{----|
|00001770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 7d 0d |--------|------}.|
|000017d0| 7b 24 53 20 41 52 65 73 | 7d 0d 0d 50 52 4f 43 45 |{$S ARes|}..PROCE|
|000017e0| 44 55 52 45 20 54 4f 66 | 66 73 63 72 65 65 6e 2e |DURE TOf|fscreen.|
|000017f0| 55 6e 6c 6f 63 6b 54 68 | 65 50 69 78 65 6c 73 3b |UnlockTh|ePixels;|
|00001800| 0d 0d 7b 20 46 6f 72 20 | 33 32 42 43 51 44 20 73 |..{ For |32BCQD s|
|00001810| 75 70 70 6f 72 74 2e 20 | 44 6f 65 73 20 6e 6f 74 |upport. |Does not|
|00001820| 68 69 6e 67 20 62 79 20 | 64 65 66 61 75 6c 74 2e |hing by |default.|
|00001830| 20 53 68 6f 75 6c 64 20 | 62 65 20 6f 76 65 72 72 | Should |be overr|
|00001840| 69 64 64 65 6e 20 69 66 | 20 79 6f 75 20 61 72 65 |idden if| you are|
|00001850| 20 75 73 69 6e 67 20 74 | 68 65 0d 20 20 33 32 2d | using t|he. 32-|
|00001860| 62 69 74 20 43 6f 6c 6f | 72 20 51 75 69 63 6b 44 |bit Colo|r QuickD|
|00001870| 72 61 77 20 72 6f 75 74 | 69 6e 65 73 20 66 6f 72 |raw rout|ines for|
|00001880| 20 6f 66 66 73 63 72 65 | 65 6e 20 73 75 70 70 6f | offscre|en suppo|
|00001890| 72 74 2c 20 61 6e 64 20 | 6e 65 65 64 20 74 6f 20 |rt, and |need to |
|000018a0| 75 6e 6c 6f 63 6b 20 79 | 6f 75 72 20 70 69 78 65 |unlock y|our pixe|
|000018b0| 6c 73 0d 20 20 61 66 74 | 65 72 20 61 63 63 65 73 |ls. aft|er acces|
|000018c0| 73 69 6e 67 20 74 68 65 | 6d 2e 20 7d 0d 0d 09 42 |sing the|m. }...B|
|000018d0| 45 47 49 4e 0d 09 45 4e | 44 3b 0d 0d 7b 2d 2d 2d |EGIN..EN|D;..{---|
|000018e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000018f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 7d |--------|-------}|
|00001940| 0d 7b 24 53 20 41 46 69 | 65 6c 64 73 7d 0d 0d 50 |.{$S AFi|elds}..P|
|00001950| 52 4f 43 45 44 55 52 45 | 20 54 4f 66 66 73 63 72 |ROCEDURE| TOffscr|
|00001960| 65 65 6e 2e 46 69 65 6c | 64 73 28 50 52 4f 43 45 |een.Fiel|ds(PROCE|
|00001970| 44 55 52 45 20 44 6f 54 | 6f 46 69 65 6c 64 28 66 |DURE DoT|oField(f|
|00001980| 69 65 6c 64 4e 61 6d 65 | 3a 20 53 74 72 32 35 35 |ieldName|: Str255|
|00001990| 3b 20 66 69 65 6c 64 41 | 64 64 72 3a 20 50 74 72 |; fieldA|ddr: Ptr|
|000019a0| 3b 0d 09 09 09 09 09 09 | 09 09 09 09 09 09 66 69 |;.......|......fi|
|000019b0| 65 6c 64 54 79 70 65 3a | 20 49 6e 74 65 67 65 72 |eldType:| Integer|
|000019c0| 29 29 3b 20 4f 56 45 52 | 52 49 44 45 3b 0d 0d 09 |)); OVER|RIDE;...|
|000019d0| 42 45 47 49 4e 0d 09 09 | 44 6f 54 6f 46 69 65 6c |BEGIN...|DoToFiel|
|000019e0| 64 28 27 54 4f 66 66 73 | 63 72 65 65 6e 27 2c 20 |d('TOffs|creen', |
|000019f0| 4e 49 4c 2c 20 62 43 6c | 61 73 73 29 3b 0d 09 09 |NIL, bCl|ass);...|
|00001a00| 44 6f 54 6f 46 69 65 6c | 64 28 27 66 4f 6c 64 44 |DoToFiel|d('fOldD|
|00001a10| 65 76 69 63 65 27 2c 20 | 40 66 4f 6c 64 44 65 76 |evice', |@fOldDev|
|00001a20| 69 63 65 2c 20 62 48 61 | 6e 64 6c 65 29 3b 0d 09 |ice, bHa|ndle);..|
|00001a30| 09 44 6f 54 6f 46 69 65 | 6c 64 28 27 66 4f 6c 64 |.DoToFie|ld('fOld|
|00001a40| 50 6f 72 74 27 2c 20 40 | 66 4f 6c 64 50 6f 72 74 |Port', @|fOldPort|
|00001a50| 2c 20 62 47 72 61 66 50 | 74 72 29 3b 0d 0d 09 09 |, bGrafP|tr);....|
|00001a60| 49 4e 48 45 52 49 54 45 | 44 20 46 69 65 6c 64 73 |INHERITE|D Fields|
|00001a70| 28 44 6f 54 6f 46 69 65 | 6c 64 29 3b 0d 09 45 4e |(DoToFie|ld);..EN|
|00001a80| 44 3b 0d 0d 7b 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |D;..{---|--------|
|00001a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ae0| 2d 2d 2d 2d 2d 2d 2d 7d | 0d 7b 24 53 20 41 4f 70 |-------}|.{$S AOp|
|00001af0| 65 6e 7d 0d 0d 50 52 4f | 43 45 44 55 52 45 20 54 |en}..PRO|CEDURE T|
|00001b00| 4f 6c 64 47 72 6f 73 73 | 4f 66 66 73 63 72 65 65 |OldGross|Offscree|
|00001b10| 6e 2e 49 4f 6c 64 47 72 | 6f 73 73 4f 66 66 73 63 |n.IOldGr|ossOffsc|
|00001b20| 72 65 65 6e 28 6f 66 66 | 42 6f 75 6e 64 73 3a 20 |reen(off|Bounds: |
|00001b30| 52 65 63 74 3b 20 69 74 | 73 43 6f 6c 6f 72 73 3a |Rect; it|sColors:|
|00001b40| 20 43 54 61 62 48 61 6e | 64 6c 65 29 3b 0d 0d 7b | CTabHan|dle);..{|
|00001b50| 20 43 72 65 61 74 65 20 | 61 6e 64 20 69 6e 69 74 | Create |and init|
|00001b60| 69 61 6c 69 7a 65 20 61 | 6e 20 6f 66 66 73 63 72 |ialize a|n offscr|
|00001b70| 65 65 6e 20 64 72 61 77 | 69 6e 67 20 65 6e 76 69 |een draw|ing envi|
|00001b80| 72 6f 6e 6d 65 6e 74 20 | 75 73 69 6e 67 20 74 68 |ronment |using th|
|00001b90| 65 20 72 6f 75 74 69 6e | 65 73 20 64 65 73 63 72 |e routin|es descr|
|00001ba0| 69 62 65 64 20 69 6e 0d | 20 20 49 6e 73 69 64 65 |ibed in.| Inside|
|00001bb0| 20 4d 61 63 20 56 2e 20 | 54 68 65 20 6f 66 66 73 | Mac V. |The offs|
|00001bc0| 63 72 65 65 6e 20 77 6f | 72 6c 64 20 73 69 7a 65 |creen wo|rld size|
|00001bd0| 20 69 73 20 73 70 65 63 | 69 66 69 65 64 20 62 79 | is spec|ified by|
|00001be0| 20 20 d2 6f 66 66 42 6f | 75 6e 64 d3 2c 20 61 6e | .offBo|und., an|
|00001bf0| 64 20 75 73 65 73 20 74 | 68 65 20 63 6f 6c 6f 72 |d uses t|he color|
|00001c00| 73 20 69 6e 0d 20 20 69 | 74 73 43 6f 6c 6f 72 73 |s in. i|tsColors|
|00001c10| 2e 20 49 74 20 6d 61 6b | 65 73 20 61 20 63 6f 70 |. It mak|es a cop|
|00001c20| 79 20 6f 66 20 74 68 65 | 20 74 61 62 6c 65 2e 20 |y of the| table. |
|00001c30| 7d 0d 0d 09 43 4f 4e 53 | 54 0d 0d 09 09 7b 20 54 |}...CONS|T....{ T|
|00001c40| 68 65 73 65 20 61 72 65 | 20 74 68 65 20 66 6c 61 |hese are| the fla|
|00001c50| 67 73 20 77 65 20 70 61 | 73 73 20 74 6f 20 4e 65 |gs we pa|ss to Ne|
|00001c60| 77 47 44 65 76 69 63 65 | 20 77 68 65 6e 20 63 72 |wGDevice| when cr|
|00001c70| 65 61 74 69 6e 67 20 6f | 75 72 20 6f 66 66 73 63 |eating o|ur offsc|
|00001c80| 72 65 65 6e 20 64 65 76 | 69 63 65 2e 20 7d 0d 0d |reen dev|ice. }..|
|00001c90| 09 09 6b 47 44 46 6c 61 | 67 73 09 09 09 3d 20 32 |..kGDFla|gs...= 2|
|00001ca0| 20 2a 2a 20 73 63 72 65 | 65 6e 41 63 74 69 76 65 | ** scre|enActive|
|00001cb0| 20 2b 20 32 20 2a 2a 20 | 6e 6f 44 72 69 76 65 72 | + 2 ** |noDriver|
|00001cc0| 20 2b 20 32 20 2a 2a 0d | 09 09 09 09 09 09 09 20 | + 2 **.|....... |
|00001cd0| 20 72 61 6d 49 6e 69 74 | 20 2b 20 32 20 2a 2a 20 | ramInit| + 2 ** |
|00001ce0| 67 64 44 65 76 54 79 70 | 65 3b 0d 09 09 6b 4e 6f |gdDevTyp|e;...kNo|
|00001cf0| 44 72 69 76 65 72 09 09 | 09 3d 20 30 3b 09 09 09 |Driver..|.= 0;...|
|00001d00| 09 09 7b 20 70 61 73 73 | 65 64 20 74 6f 20 4e 65 |..{ pass|ed to Ne|
|00001d10| 77 47 44 65 76 69 63 65 | 2e 20 7d 0d 09 09 6b 4d |wGDevice|. }...kM|
|00001d20| 6f 64 65 46 6f 72 4e 6f | 44 72 69 76 65 72 09 3d |odeForNo|Driver.=|
|00001d30| 20 2d 20 31 3b 09 09 09 | 09 09 7b 20 70 61 73 73 | - 1;...|..{ pass|
|00001d40| 65 64 20 74 6f 20 4e 65 | 77 47 44 65 76 69 63 65 |ed to Ne|wGDevice|
|00001d50| 2e 20 7d 0d 0d 09 56 41 | 52 0d 09 09 6f 6c 64 50 |. }...VA|R...oldP|
|00001d60| 65 72 6d 3a 09 09 09 42 | 6f 6f 6c 65 61 6e 3b 0d |erm:...B|oolean;.|
|00001d70| 09 09 64 75 6d 6d 79 3a | 09 09 09 09 42 6f 6f 6c |..dummy:|....Bool|
|00001d80| 65 61 6e 3b 09 09 09 09 | 7b 20 64 75 6d 6d 79 20 |ean;....|{ dummy |
|00001d90| 72 65 73 75 6c 74 20 66 | 6f 72 20 50 65 72 6d 41 |result f|or PermA|
|00001da0| 6c 6c 6f 63 61 74 69 6f | 6e 2e 20 7d 0d 09 09 64 |llocatio|n. }...d|
|00001db0| 6f 63 57 2c 20 64 6f 63 | 48 3a 20 09 09 4c 6f 6e |ocW, doc|H: ..Lon|
|00001dc0| 67 49 6e 74 3b 0d 09 09 | 66 69 3a 20 09 09 09 09 |gInt;...|fi: ....|
|00001dd0| 46 61 69 6c 49 6e 66 6f | 3b 0d 09 09 61 6e 4f 66 |FailInfo|;...anOf|
|00001de0| 66 44 65 76 69 63 65 3a | 09 09 47 44 48 61 6e 64 |fDevice:|..GDHand|
|00001df0| 6c 65 3b 0d 09 09 61 42 | 75 66 66 50 6f 69 6e 74 |le;...aB|uffPoint|
|00001e00| 65 72 3a 09 09 50 74 72 | 3b 0d 0d 09 7b 20 54 68 |er:..Ptr|;...{ Th|
|00001e10| 69 73 20 69 73 20 74 68 | 65 20 65 72 72 6f 72 20 |is is th|e error |
|00001e20| 68 61 6e 64 6c 65 72 20 | 66 6f 72 20 77 68 65 6e |handler |for when|
|00001e30| 20 77 65 20 67 65 74 20 | 65 72 72 6f 72 73 20 77 | we get |errors w|
|00001e40| 68 69 6c 65 20 6d 61 6b | 69 6e 67 20 61 20 6e 65 |hile mak|ing a ne|
|00001e50| 77 20 47 57 6f 72 6c 64 | 2c 0d 09 20 20 74 79 70 |w GWorld|,.. typ|
|00001e60| 69 63 61 6c 6c 79 20 6c | 69 6b 65 20 72 75 6e 6e |ically l|ike runn|
|00001e70| 69 6e 67 20 6f 75 74 20 | 6f 66 20 6d 65 6d 6f 72 |ing out |of memor|
|00001e80| 79 2e 20 20 53 69 6e 63 | 65 20 77 65 20 63 61 6c |y. Sinc|e we cal|
|00001e90| 6c 20 74 68 65 20 46 72 | 65 65 20 6d 65 74 68 6f |l the Fr|ee metho|
|00001ea0| 64 20 66 6f 72 20 74 68 | 65 0d 09 20 20 54 4f 66 |d for th|e.. TOf|
|00001eb0| 66 73 63 72 65 65 6e 2c | 20 77 65 20 64 6f 6e d5 |fscreen,| we don.|
|00001ec0| 74 20 68 61 76 65 20 74 | 6f 20 63 6c 65 61 6e 20 |t have t|o clean |
|00001ed0| 74 68 69 6e 67 73 20 75 | 70 20 6f 75 72 73 65 6c |things u|p oursel|
|00001ee0| 76 65 73 20 68 65 72 65 | 2e 20 4a 75 73 74 20 73 |ves here|. Just s|
|00001ef0| 65 74 0d 09 20 20 61 6c | 6c 6f 63 61 74 69 6f 6e |et.. al|location|
|00001f00| 20 62 61 63 6b 20 74 6f | 20 6e 6f 72 6d 61 6c 20 | back to| normal |
|00001f10| 28 66 6f 72 20 74 68 65 | 20 65 72 72 6f 72 20 6d |(for the| error m|
|00001f20| 65 73 73 61 67 65 20 69 | 74 73 65 6c 66 29 2c 20 |essage i|tself), |
|00001f30| 73 65 74 20 74 68 65 20 | 64 72 61 77 69 6e 67 0d |set the |drawing.|
|00001f40| 09 20 20 65 6e 76 69 72 | 6f 6e 6d 65 6e 74 20 62 |. envir|onment b|
|00001f50| 61 63 6b 20 74 6f 20 6e | 6f 72 6d 61 6c 2c 20 63 |ack to n|ormal, c|
|00001f60| 61 6c 6c 20 46 72 65 65 | 2c 20 61 6e 64 20 72 65 |all Free|, and re|
|00001f70| 74 75 72 6e 2e 20 7d 0d | 0d 09 50 52 4f 43 45 44 |turn. }.|..PROCED|
|00001f80| 55 52 45 20 44 65 61 74 | 68 4f 66 66 73 63 72 65 |URE Deat|hOffscre|
|00001f90| 65 6e 28 65 72 72 6f 72 | 3a 20 4f 53 45 72 72 3b |en(error|: OSErr;|
|00001fa0| 20 6d 65 73 73 61 67 65 | 3a 20 4c 6f 6e 67 49 6e | message|: LongIn|
|00001fb0| 74 29 3b 0d 0d 09 09 42 | 45 47 49 4e 0d 09 09 09 |t);....B|EGIN....|
|00001fc0| 6f 6c 64 50 65 72 6d 20 | 3a 3d 20 50 65 72 6d 41 |oldPerm |:= PermA|
|00001fd0| 6c 6c 6f 63 61 74 69 6f | 6e 28 6f 6c 64 50 65 72 |llocatio|n(oldPer|
|00001fe0| 6d 29 3b 20 09 7b 20 53 | 65 74 20 6d 65 6d 6f 72 |m); .{ S|et memor|
|00001ff0| 79 20 62 61 63 6b 20 74 | 6f 20 70 72 65 76 69 6f |y back t|o previo|
|00002000| 75 73 2e 20 7d 0d 09 09 | 09 53 45 4c 46 2e 52 65 |us. }...|.SELF.Re|
|00002010| 73 74 6f 72 65 4f 6c 64 | 57 6f 72 6c 64 3b 0d 09 |storeOld|World;..|
|00002020| 09 09 53 45 4c 46 2e 46 | 72 65 65 3b 0d 09 09 45 |..SELF.F|ree;...E|
|00002030| 4e 44 3b 0d 0d 09 42 45 | 47 49 4e 0d 0d 09 7b 20 |ND;...BE|GIN...{ |
|00002040| 53 65 74 20 61 6c 6c 20 | 74 68 65 73 65 20 74 6f |Set all |these to|
|00002050| 20 4e 49 4c 2e 20 49 66 | 20 74 68 65 72 65 20 69 | NIL. If| there i|
|00002060| 73 20 61 6e 20 65 72 72 | 6f 72 2c 20 74 68 65 6e |s an err|or, then|
|00002070| 20 77 65 20 6e 65 65 64 | 20 74 6f 20 66 72 65 65 | we need| to free|
|00002080| 20 6f 75 72 73 65 6c 76 | 65 73 2e 0d 09 20 20 49 | ourselv|es... I|
|00002090| 6e 20 74 68 61 74 20 63 | 61 73 65 2c 20 77 65 20 |n that c|ase, we |
|000020a0| 64 6f 6e d5 74 20 77 61 | 6e 74 20 74 68 65 73 65 |don.t wa|nt these|
|000020b0| 20 76 61 72 69 61 62 6c | 65 73 20 68 6f 6c 64 69 | variabl|es holdi|
|000020c0| 6e 67 20 67 61 72 62 61 | 67 65 2e 20 49 66 20 74 |ng garba|ge. If t|
|000020d0| 68 65 79 20 64 6f 2c 20 | 74 68 61 74 0d 09 20 20 |hey do, |that.. |
|000020e0| 67 61 72 62 61 67 65 20 | 6d 61 79 20 6c 6f 6f 6b |garbage |may look|
|000020f0| 20 65 6e 6f 75 67 68 20 | 6c 69 6b 65 20 74 68 65 | enough |like the|
|00002100| 20 72 65 61 6c 20 74 68 | 69 6e 67 2c 20 61 6e 64 | real th|ing, and|
|00002110| 20 74 68 65 20 44 69 73 | 70 6f 73 65 20 72 6f 75 | the Dis|pose rou|
|00002120| 74 69 6e 65 73 20 77 69 | 6c 6c 0d 09 20 20 74 72 |tines wi|ll.. tr|
|00002130| 79 20 74 6f 20 64 65 2d | 61 6c 6c 6f 63 61 74 65 |y to de-|allocate|
|00002140| 20 6d 65 6d 6f 72 79 20 | 74 68 61 74 20 77 61 73 | memory |that was|
|00002150| 20 6e 65 76 65 72 20 61 | 6c 6c 6f 63 61 74 65 64 | never a|llocated|
|00002160| 20 74 6f 20 62 65 67 69 | 6e 20 77 69 74 68 c9 20 | to begi|n with. |
|00002170| 7d 0d 0d 09 09 66 4f 66 | 66 50 6f 72 74 20 3a 3d |}....fOf|fPort :=|
|00002180| 20 4e 49 4c 3b 0d 09 09 | 66 4f 66 66 44 65 76 69 | NIL;...|fOffDevi|
|00002190| 63 65 20 3a 3d 20 4e 49 | 4c 3b 0d 09 09 66 42 69 |ce := NI|L;...fBi|
|000021a0| 67 42 75 66 66 20 3a 3d | 20 4e 49 4c 3b 0d 0d 09 |gBuff :=| NIL;...|
|000021b0| 7b 20 41 6c 6c 6f 77 20 | 6f 75 72 20 62 61 73 65 |{ Allow |our base|
|000021c0| 20 63 6c 61 73 73 20 74 | 6f 20 69 6e 69 74 69 61 | class t|o initia|
|000021d0| 6c 69 7a 65 20 69 74 73 | 65 6c 66 2e 20 7d 0d 0d |lize its|elf. }..|
|000021e0| 09 09 53 45 4c 46 2e 49 | 4f 66 66 73 63 72 65 65 |..SELF.I|Offscree|
|000021f0| 6e 3b 0d 0d 09 7b 20 50 | 72 65 70 61 72 65 20 66 |n;...{ P|repare f|
|00002200| 6f 72 20 66 61 69 6c 75 | 72 65 2e 20 54 68 65 20 |or failu|re. The |
|00002210| 6d 65 6d 6f 72 79 20 75 | 73 65 64 20 63 72 65 61 |memory u|sed crea|
|00002220| 74 69 6e 67 20 74 68 65 | 20 76 69 65 77 20 6d 75 |ting the| view mu|
|00002230| 73 74 20 62 65 20 6f 75 | 74 20 6f 66 20 70 65 72 |st be ou|t of per|
|00002240| 6d 61 6e 65 6e 74 0d 09 | 20 20 6d 65 6d 6f 72 79 |manent..| memory|
|00002250| 20 73 6f 20 63 61 6c 6c | 20 50 65 72 6d 41 6c 6c | so call| PermAll|
|00002260| 6f 63 61 74 69 6f 6e 20 | 74 6f 20 6d 61 6b 65 20 |ocation |to make |
|00002270| 69 74 20 73 6f 2e 20 53 | 65 74 20 75 70 20 61 6e |it so. S|et up an|
|00002280| 20 65 72 72 6f 72 20 68 | 61 6e 64 6c 65 72 20 74 | error h|andler t|
|00002290| 68 61 74 20 77 69 6c 6c | 0d 09 20 20 73 65 74 20 |hat will|.. set |
|000022a0| 69 74 20 62 61 63 6b 20 | 69 6e 20 63 61 73 65 20 |it back |in case |
|000022b0| 77 65 20 63 61 6e d5 74 | 20 67 65 74 20 61 6e 79 |we can.t| get any|
|000022c0| 20 6f 66 20 74 68 61 74 | 20 6d 65 6d 6f 72 79 2e | of that| memory.|
|000022d0| 20 57 65 20 61 6c 73 6f | 20 74 72 79 20 74 6f 20 | We also| try to |
|000022e0| 72 65 73 74 6f 72 65 20 | 74 68 65 0d 09 20 20 64 |restore |the.. d|
|000022f0| 72 61 77 69 6e 67 20 77 | 6f 72 6c 64 20 74 6f 20 |rawing w|orld to |
|00002300| 73 6f 6d 65 74 68 69 6e | 67 20 75 73 65 66 75 6c |somethin|g useful|
|00002310| 2c 20 73 6f 20 6d 61 6b | 65 20 73 75 72 65 20 77 |, so mak|e sure w|
|00002320| 65 20 73 61 76 65 20 61 | 20 63 6f 6e 73 69 73 74 |e save a| consist|
|00002330| 61 6e 74 20 77 6f 72 6c | 64 20 62 79 0d 09 20 20 |ant worl|d by.. |
|00002340| 63 61 6c 6c 69 6e 67 20 | 53 61 76 65 4f 6c 64 57 |calling |SaveOldW|
|00002350| 6f 72 6c 64 2e 20 7d 0d | 0d 09 09 53 45 4c 46 2e |orld. }.|...SELF.|
|00002360| 53 61 76 65 4f 6c 64 57 | 6f 72 6c 64 3b 0d 09 09 |SaveOldW|orld;...|
|00002370| 6f 6c 64 50 65 72 6d 20 | 3a 3d 20 50 65 72 6d 41 |oldPerm |:= PermA|
|00002380| 6c 6c 6f 63 61 74 69 6f | 6e 28 54 52 55 45 29 3b |llocatio|n(TRUE);|
|00002390| 0d 09 09 43 61 74 63 68 | 46 61 69 6c 75 72 65 73 |...Catch|Failures|
|000023a0| 28 66 69 2c 20 44 65 61 | 74 68 4f 66 66 73 63 72 |(fi, Dea|thOffscr|
|000023b0| 65 65 6e 29 3b 09 09 09 | 7b 20 61 6e 79 20 66 61 |een);...|{ any fa|
|000023c0| 69 6c 75 72 65 73 20 6d | 75 73 74 20 62 65 20 63 |ilures m|ust be c|
|000023d0| 6c 65 61 6e 65 64 20 75 | 70 2e 20 7d 0d 0d 09 7b |leaned u|p. }...{|
|000023e0| 20 4c 65 74 d5 73 20 73 | 65 74 20 75 70 20 74 68 | Let.s s|et up th|
|000023f0| 65 20 73 69 7a 65 20 6f | 66 20 74 68 65 20 72 65 |e size o|f the re|
|00002400| 63 74 61 6e 67 6c 65 20 | 77 65 20 61 72 65 20 75 |ctangle |we are u|
|00002410| 73 69 6e 67 20 66 6f 72 | 20 74 68 65 20 64 6f 63 |sing for| the doc|
|00002420| 75 6d 65 6e 74 2e 20 44 | 6f 6e d5 74 0d 09 20 20 |ument. D|on.t.. |
|00002430| 66 6f 72 67 65 74 20 74 | 68 61 74 20 74 68 65 20 |forget t|hat the |
|00002440| 77 69 64 74 68 20 6d 75 | 73 74 20 62 65 20 61 6e |width mu|st be an|
|00002450| 20 65 76 65 6e 20 6e 75 | 6d 62 65 72 2c 20 73 6f | even nu|mber, so|
|00002460| 20 77 65 20 72 6f 75 6e | 64 20 69 74 20 75 70 2e | we roun|d it up.|
|00002470| 20 7d 0d 0d 09 09 57 49 | 54 48 20 6f 66 66 42 6f | }....WI|TH offBo|
|00002480| 75 6e 64 73 20 44 4f 20 | 42 45 47 49 4e 0d 09 09 |unds DO |BEGIN...|
|00002490| 09 64 6f 63 57 20 3a 3d | 20 28 28 28 72 69 67 68 |.docW :=| (((righ|
|000024a0| 74 20 2d 20 6c 65 66 74 | 29 20 2b 20 31 29 20 44 |t - left|) + 1) D|
|000024b0| 49 56 20 32 29 20 2a 20 | 32 3b 0d 09 09 09 64 6f |IV 2) * |2;....do|
|000024c0| 63 48 20 3a 3d 20 62 6f | 74 74 6f 6d 20 2d 20 74 |cH := bo|ttom - t|
|000024d0| 6f 70 3b 0d 09 09 45 4e | 44 3b 0d 0d 09 7b 20 4e |op;...EN|D;...{ N|
|000024e0| 6f 77 20 74 72 79 20 74 | 6f 20 73 65 74 20 75 70 |ow try t|o set up|
|000024f0| 20 74 68 65 20 6f 66 66 | 73 63 72 65 65 6e 20 70 | the off|screen p|
|00002500| 69 78 4d 61 70 20 28 63 | 6f 6c 6f 72 29 2e 20 20 |ixMap (c|olor). |
|00002510| 49 66 20 77 65 20 66 61 | 69 6c 20 77 65 20 68 61 |If we fa|il we ha|
|00002520| 76 65 20 74 6f 20 73 70 | 6c 69 74 2c 0d 09 20 20 |ve to sp|lit,.. |
|00002530| 61 6e 64 20 77 65 20 6d | 69 67 68 74 20 73 69 6e |and we m|ight sin|
|00002540| 63 65 20 77 65 20 6d 61 | 79 20 6e 6f 74 20 68 61 |ce we ma|y not ha|
|00002550| 76 65 20 35 30 30 4b 20 | 6f 72 20 6d 6f 72 65 20 |ve 500K |or more |
|00002560| 66 6f 72 20 74 68 65 20 | 70 69 78 4d 61 70 2e 20 |for the |pixMap. |
|00002570| 45 61 63 68 20 64 6f 63 | 75 6d 65 6e 74 0d 09 20 |Each doc|ument.. |
|00002580| 20 6f 6e 20 73 63 72 65 | 65 6e 20 77 69 6c 6c 20 | on scre|en will |
|00002590| 68 61 76 65 20 61 20 66 | 75 6c 6c 20 70 69 78 4d |have a f|ull pixM|
|000025a0| 61 70 20 66 6f 72 20 69 | 74 2e 20 41 6c 6c 6f 63 |ap for i|t. Alloc|
|000025b0| 61 74 65 20 61 20 66 75 | 6c 6c 20 62 75 66 66 65 |ate a fu|ll buffe|
|000025c0| 72 20 69 6e 20 38 20 62 | 69 74 0d 09 20 20 64 65 |r in 8 b|it.. de|
|000025d0| 70 74 68 2c 20 69 74 73 | 20 73 69 7a 65 20 62 61 |pth, its| size ba|
|000025e0| 73 65 64 20 6f 6e 20 74 | 68 65 20 62 6f 75 6e 64 |sed on t|he bound|
|000025f0| 69 6e 67 20 72 65 63 74 | 61 6e 67 6c 65 20 70 61 |ing rect|angle pa|
|00002600| 73 73 65 64 20 69 6e 20 | 74 6f 20 75 73 2e 20 41 |ssed in |to us. A|
|00002610| 6c 73 6f 20 6d 61 6b 65 | 20 69 74 0d 09 20 20 69 |lso make| it.. i|
|00002620| 6e 74 6f 20 61 20 63 6f | 6c 6f 72 20 70 6f 72 74 |nto a co|lor port|
|00002630| 20 73 6f 20 77 65 20 63 | 61 6e 20 64 72 61 77 20 | so we c|an draw |
|00002640| 69 6e 74 6f 20 69 74 20 | 6e 6f 72 6d 61 6c 6c 79 |into it |normally|
|00002650| 20 61 6e 64 20 75 73 65 | 20 69 74 20 61 73 20 61 | and use| it as a|
|00002660| 20 73 6f 75 72 63 65 20 | 66 6f 72 0d 09 20 20 43 | source |for.. C|
|00002670| 6f 70 79 42 69 74 73 2e | 20 52 65 71 75 69 72 65 |opyBits.| Require|
|00002680| 73 20 38 20 62 69 74 73 | 20 64 65 65 70 20 66 6f |s 8 bits| deep fo|
|00002690| 72 20 74 68 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |r the nu|mber of |
|000026a0| 63 6f 6c 6f 72 73 2c 20 | 61 6e 64 20 73 65 74 73 |colors, |and sets|
|000026b0| 20 75 70 20 61 20 62 75 | 66 66 65 72 0d 09 20 20 | up a bu|ffer.. |
|000026c0| 77 69 74 68 20 74 68 61 | 74 20 69 6e 20 6d 69 6e |with tha|t in min|
|000026d0| 64 2c 20 74 68 61 74 20 | 69 73 20 66 75 6c 6c 20 |d, that |is full |
|000026e0| 64 6f 63 52 65 63 74 20 | 73 69 7a 65 20 77 69 74 |docRect |size wit|
|000026f0| 68 20 6f 6e 65 20 62 79 | 74 65 20 70 65 72 20 70 |h one by|te per p|
|00002700| 69 78 65 6c 20 61 73 20 | 38 20 62 69 74 0d 09 20 |ixel as |8 bit.. |
|00002710| 20 6d 6f 64 65 2e 20 54 | 68 69 73 20 69 73 20 77 | mode. T|his is w|
|00002720| 69 64 74 68 20 2a 20 68 | 65 69 67 68 74 2e 20 38 |idth * h|eight. 8|
|00002730| 20 62 69 74 73 2f 62 79 | 74 65 2e 20 7d 0d 0d 09 | bits/by|te. }...|
|00002740| 09 61 42 75 66 66 50 6f | 69 6e 74 65 72 20 3a 3d |.aBuffPo|inter :=|
|00002750| 20 4e 65 77 50 74 72 28 | 64 6f 63 57 20 2a 20 64 | NewPtr(|docW * d|
|00002760| 6f 63 48 29 3b 0d 09 09 | 46 61 69 6c 4e 49 4c 28 |ocH);...|FailNIL(|
|00002770| 61 42 75 66 66 50 6f 69 | 6e 74 65 72 29 3b 09 09 |aBuffPoi|nter);..|
|00002780| 09 09 09 09 7b 20 63 6f | 75 6c 64 6e d5 74 20 67 |....{ co|uldn.t g|
|00002790| 65 74 20 69 74 20 77 65 | 20 64 69 65 2e 20 7d 0d |et it we| die. }.|
|000027a0| 09 09 66 42 69 67 42 75 | 66 66 20 3a 3d 20 61 42 |..fBigBu|ff := aB|
|000027b0| 75 66 66 50 6f 69 6e 74 | 65 72 3b 0d 0d 09 7b 20 |uffPoint|er;...{ |
|000027c0| 4f 4b 2c 20 6e 6f 77 20 | 77 65 20 67 65 74 20 77 |OK, now |we get w|
|000027d0| 61 63 6b 6f 2e 20 57 65 | 20 6e 65 65 64 20 74 6f |acko. We| need to|
|000027e0| 20 63 72 65 61 74 65 20 | 6f 75 72 20 6f 77 6e 20 | create |our own |
|000027f0| 67 44 65 76 69 63 65 2c | 20 73 69 6e 63 65 20 77 |gDevice,| since w|
|00002800| 65 20 77 61 6e 74 20 74 | 6f 0d 09 20 20 68 61 76 |e want t|o.. hav|
|00002810| 65 20 61 6e 20 6f 66 66 | 73 63 72 65 65 6e 20 64 |e an off|screen d|
|00002820| 65 76 69 63 65 2e 20 54 | 68 69 73 20 6e 65 65 64 |evice. T|his need|
|00002830| 73 20 74 6f 20 62 65 20 | 64 6f 6e 65 20 73 6f 20 |s to be |done so |
|00002840| 74 68 61 74 20 77 65 20 | 68 61 76 65 20 66 75 6c |that we |have ful|
|00002850| 6c 20 63 6f 6e 74 72 6f | 6c 0d 09 20 20 6f 76 65 |l contro|l.. ove|
|00002860| 72 20 74 68 65 20 63 6f | 6c 6f 72 20 74 61 62 6c |r the co|lor tabl|
|00002870| 65 20 75 73 65 64 2c 20 | 69 6e 20 6f 72 64 65 72 |e used, |in order|
|00002880| 20 74 6f 20 73 61 76 65 | 20 66 75 6c 6c 20 38 20 | to save| full 8 |
|00002890| 62 69 74 20 64 6f 63 75 | 6d 65 6e 74 73 2c 20 65 |bit docu|ments, e|
|000028a0| 76 65 6e 20 69 66 20 77 | 65 0d 09 20 20 61 72 65 |ven if w|e.. are|
|000028b0| 6e d5 74 20 69 6e 20 38 | 20 62 69 74 20 6d 6f 64 |n.t in 8| bit mod|
|000028c0| 65 20 77 68 65 6e 20 77 | 65 20 73 61 76 65 2e 20 |e when w|e save. |
|000028d0| 53 6f 2e 2e 2e 09 57 65 | 20 77 69 6c 6c 20 73 74 |So....We| will st|
|000028e0| 61 72 74 20 62 79 20 63 | 72 65 61 74 69 6e 67 20 |art by c|reating |
|000028f0| 61 0d 09 20 20 4e 65 77 | 47 44 65 76 69 63 65 2c |a.. New|GDevice,|
|00002900| 20 74 68 61 74 20 77 69 | 6c 6c 20 61 6c 6c 6f 63 | that wi|ll alloc|
|00002910| 61 74 65 20 61 20 74 65 | 6d 70 6f 72 61 72 79 20 |ate a te|mporary |
|00002920| 49 54 61 62 6c 65 2c 20 | 61 6e 64 20 50 69 78 4d |ITable, |and PixM|
|00002930| 61 70 20 77 69 74 68 20 | 70 61 72 74 69 61 6c 0d |ap with |partial.|
|00002940| 09 20 20 63 6f 6c 6f 72 | 54 61 62 6c 65 3b 20 63 |. color|Table; c|
|00002950| 68 61 6e 67 65 20 74 68 | 65 20 66 69 65 6c 64 73 |hange th|e fields|
|00002960| 20 6f 66 20 74 68 65 20 | 64 65 76 69 63 65 d5 73 | of the |device.s|
|00002970| 20 70 69 78 4d 61 70 20 | 74 6f 20 6f 75 72 20 62 | pixMap |to our b|
|00002980| 69 74 4d 61 70 2c 20 77 | 69 74 68 0d 09 20 20 72 |itMap, w|ith.. r|
|00002990| 69 67 68 74 20 73 69 7a | 65 2c 20 64 65 70 74 68 |ight siz|e, depth|
|000029a0| 2c 20 61 6e 64 20 72 6f | 77 62 79 74 65 73 3b 20 |, and ro|wbytes; |
|000029b0| 69 6e 69 74 20 74 68 65 | 20 66 69 65 6c 64 73 20 |init the| fields |
|000029c0| 6f 66 20 74 68 61 74 20 | 64 65 76 69 63 65 2c 20 |of that |device, |
|000029d0| 69 6e 63 6c 75 64 69 6e | 67 0d 09 20 20 63 68 61 |includin|g.. cha|
|000029e0| 6e 67 69 6e 67 20 74 68 | 65 20 63 6f 6c 6f 72 20 |nging th|e color |
|000029f0| 74 61 62 6c 65 20 74 6f | 20 6f 75 72 20 63 6f 6c |table to| our col|
|00002a00| 6f 72 20 74 61 62 6c 65 | 20 63 72 65 61 74 65 64 |or table| created|
|00002a10| 20 66 72 6f 6d 20 6f 75 | 72 20 63 6c 75 74 3b 20 | from ou|r clut; |
|00002a20| 73 65 74 20 74 68 61 74 | 0d 09 20 20 67 44 65 76 |set that|.. gDev|
|00002a30| 69 63 65 20 61 73 20 74 | 68 65 20 63 75 72 72 65 |ice as t|he curre|
|00002a40| 6e 74 20 6f 6e 65 3b 20 | 74 68 65 6e 20 64 6f 20 |nt one; |then do |
|00002a50| 74 68 65 20 4f 70 65 6e | 43 50 6f 72 74 20 77 68 |the Open|CPort wh|
|00002a60| 69 63 68 20 77 69 6c 6c | 20 75 73 65 20 74 68 65 |ich will| use the|
|00002a70| 20 63 75 72 72 65 6e 74 | 0d 09 20 20 67 44 65 76 | current|.. gDev|
|00002a80| 69 63 65 20 74 6f 20 6d | 61 6b 65 20 69 74 73 20 |ice to m|ake its |
|00002a90| 50 69 78 4d 61 70 20 61 | 6e 64 20 63 6f 6c 6f 72 |PixMap a|nd color|
|00002aa0| 20 74 61 62 6c 65 2e 20 | 57 68 65 6e 20 77 65 20 | table. |When we |
|00002ab0| 67 6f 20 74 6f 20 64 72 | 61 77 20 6f 72 20 73 61 |go to dr|aw or sa|
|00002ac0| 76 65 20 74 68 65 0d 09 | 20 20 64 61 74 61 20 69 |ve the..| data i|
|00002ad0| 6e 20 74 68 65 20 6f 66 | 66 73 63 72 65 65 6e 20 |n the of|fscreen |
|00002ae0| 62 75 66 66 65 72 2c 20 | 77 65 20 6e 65 65 64 20 |buffer, |we need |
|00002af0| 74 6f 20 73 65 74 20 74 | 68 65 20 63 75 72 72 65 |to set t|he curre|
|00002b00| 6e 74 20 64 65 76 69 63 | 65 20 73 6f 20 77 65 20 |nt devic|e so we |
|00002b10| 75 73 65 20 6f 75 72 0d | 09 20 20 63 6f 6c 6f 72 |use our.|. color|
|00002b20| 20 74 61 62 6c 65 2c 20 | 6d 61 6b 69 6e 67 20 61 | table, |making a|
|00002b30| 6c 6c 20 74 68 65 20 63 | 6f 6c 6f 72 73 20 63 6f |ll the c|olors co|
|00002b40| 6d 65 20 6f 75 74 20 72 | 69 67 68 74 2e 20 7d 0d |me out r|ight. }.|
|00002b50| 0d 09 7b 20 4e 6f 77 20 | 77 65 20 6e 65 65 64 20 |..{ Now |we need |
|00002b60| 74 6f 20 64 6f 20 74 68 | 65 20 70 69 65 63 65 20 |to do th|e piece |
|00002b70| 74 6f 20 6d 61 6b 65 20 | 61 6e 20 6f 66 66 73 63 |to make |an offsc|
|00002b80| 72 65 65 6e 20 67 44 65 | 76 69 63 65 20 74 68 61 |reen gDe|vice tha|
|00002b90| 74 20 69 73 20 6e 6f 74 | 0d 09 20 20 63 6f 6e 6e |t is not|.. conn|
|00002ba0| 65 63 74 65 64 20 74 6f | 20 74 68 65 20 73 63 72 |ected to| the scr|
|00002bb0| 65 65 6e 2e 20 41 6c 6c | 6f 63 61 74 65 20 61 20 |een. All|ocate a |
|00002bc0| 6e 65 77 20 6f 6e 65 2c | 20 77 69 74 68 20 73 74 |new one,| with st|
|00002bd0| 75 62 20 70 69 78 4d 61 | 70 2e 20 7d 0d 0d 09 09 |ub pixMa|p. }....|
|00002be0| 61 6e 4f 66 66 44 65 76 | 69 63 65 20 3a 3d 20 4e |anOffDev|ice := N|
|00002bf0| 65 77 47 44 65 76 69 63 | 65 28 6b 4e 6f 44 72 69 |ewGDevic|e(kNoDri|
|00002c00| 76 65 72 2c 20 6b 4d 6f | 64 65 46 6f 72 4e 6f 44 |ver, kMo|deForNoD|
|00002c10| 72 69 76 65 72 29 3b 0d | 09 09 46 61 69 6c 4e 49 |river);.|..FailNI|
|00002c20| 4c 28 61 6e 4f 66 66 44 | 65 76 69 63 65 29 3b 09 |L(anOffD|evice);.|
|00002c30| 09 09 09 09 09 7b 20 49 | 66 20 77 65 20 66 61 69 |.....{ I|f we fai|
|00002c40| 6c 65 64 2c 20 65 72 72 | 6f 72 20 6f 75 74 2e 20 |led, err|or out. |
|00002c50| 7d 0d 09 09 66 4f 66 66 | 44 65 76 69 63 65 20 3a |}...fOff|Device :|
|00002c60| 3d 20 61 6e 4f 66 66 44 | 65 76 69 63 65 3b 0d 0d |= anOffD|evice;..|
|00002c70| 09 7b 20 4e 6f 77 20 69 | 6e 69 74 20 61 6c 6c 20 |.{ Now i|nit all |
|00002c80| 74 68 65 20 66 69 65 6c | 64 73 20 77 65 20 63 61 |the fiel|ds we ca|
|00002c90| 6e 20 69 6e 20 74 68 65 | 20 67 44 65 76 69 63 65 |n in the| gDevice|
|00002ca0| 20 52 65 63 6f 72 64 2c | 20 73 69 6e 63 65 20 69 | Record,| since i|
|00002cb0| 74 20 63 6f 6d 65 73 0d | 09 20 20 75 6e 69 6e 69 |t comes.|. unini|
|00002cc0| 74 69 61 6c 69 7a 65 64 | 2e 20 7d 0d 0d 09 09 4c |tialized|. }....L|
|00002cd0| 6f 63 6b 48 61 6e 64 6c | 65 48 69 67 68 28 48 61 |ockHandl|eHigh(Ha|
|00002ce0| 6e 64 6c 65 28 66 4f 66 | 66 44 65 76 69 63 65 29 |ndle(fOf|fDevice)|
|00002cf0| 29 3b 0d 09 09 57 49 54 | 48 20 66 4f 66 66 44 65 |);...WIT|H fOffDe|
|00002d00| 76 69 63 65 5e 5e 20 44 | 4f 20 42 45 47 49 4e 0d |vice^^ D|O BEGIN.|
|00002d10| 09 09 09 67 64 49 44 20 | 3a 3d 20 30 3b 09 09 09 |...gdID |:= 0;...|
|00002d20| 09 09 09 09 09 7b 20 6e | 6f 20 49 44 20 66 6f 72 |.....{ n|o ID for|
|00002d30| 20 73 65 61 72 63 68 20 | 26 20 63 6f 6d 70 6c 65 | search |& comple|
|00002d40| 6d 65 6e 74 20 70 72 6f | 63 73 20 7d 0d 09 09 09 |ment pro|cs }....|
|00002d50| 67 64 54 79 70 65 20 3a | 3d 20 63 6c 75 74 54 79 |gdType :|= clutTy|
|00002d60| 70 65 3b 20 09 09 09 09 | 09 7b 20 63 6f 6c 6f 72 |pe; ....|.{ color|
|00002d70| 20 74 61 62 6c 65 20 74 | 79 70 65 20 66 65 72 20 | table t|ype fer |
|00002d80| 73 75 72 65 2e 20 7d 0d | 0d 09 09 7b 20 47 65 74 |sure. }.|...{ Get|
|00002d90| 20 74 68 65 20 63 6f 6c | 6f 72 20 74 61 62 6c 65 | the col|or table|
|00002da0| 20 66 6f 72 20 74 68 65 | 20 6f 66 66 73 63 72 65 | for the| offscre|
|00002db0| 65 6e 20 67 44 65 76 69 | 63 65 2e 20 20 54 68 69 |en gDevi|ce. Thi|
|00002dc0| 73 20 69 73 20 61 20 63 | 6f 70 79 20 6f 66 20 74 |s is a c|opy of t|
|00002dd0| 68 65 20 67 6c 6f 62 61 | 6c 0d 09 09 20 20 63 6f |he globa|l... co|
|00002de0| 6c 6f 72 20 74 61 62 6c | 65 20 77 65 20 63 72 65 |lor tabl|e we cre|
|00002df0| 61 74 65 64 20 65 61 72 | 6c 79 20 6f 6e 2e 20 7d |ated ear|ly on. }|
|00002e00| 0d 0d 09 09 09 44 69 73 | 70 6f 73 43 54 61 62 6c |.....Dis|posCTabl|
|00002e10| 65 28 67 64 50 4d 61 70 | 5e 5e 2e 70 6d 54 61 62 |e(gdPMap|^^.pmTab|
|00002e20| 6c 65 29 3b 20 09 09 7b | 20 6b 69 6c 6c 20 74 68 |le); ..{| kill th|
|00002e30| 65 20 73 74 75 62 20 74 | 68 61 74 20 69 73 20 74 |e stub t|hat is t|
|00002e40| 68 65 72 65 2e 20 7d 0d | 09 09 09 67 64 50 4d 61 |here. }.|...gdPMa|
|00002e50| 70 5e 5e 2e 70 6d 54 61 | 62 6c 65 20 3a 3d 20 69 |p^^.pmTa|ble := i|
|00002e60| 74 73 43 6f 6c 6f 72 73 | 3b 09 09 09 7b 20 6d 61 |tsColors|;...{ ma|
|00002e70| 6b 65 20 61 20 63 6f 70 | 79 20 6f 66 20 6f 75 72 |ke a cop|y of our|
|00002e80| 20 67 6c 6f 62 61 6c 20 | 63 6f 6c 6f 72 20 74 61 | global |color ta|
|00002e90| 62 6c 65 2e 0d 09 09 09 | 09 09 09 09 09 09 09 09 |ble.....|........|
|00002ea0| 09 09 20 7d 0d 09 09 09 | 46 61 69 6c 4f 53 45 72 |.. }....|FailOSEr|
|00002eb0| 72 28 48 61 6e 64 54 6f | 48 61 6e 64 28 48 61 6e |r(HandTo|Hand(Han|
|00002ec0| 64 6c 65 28 67 64 50 4d | 61 70 5e 5e 2e 70 6d 54 |dle(gdPM|ap^^.pmT|
|00002ed0| 61 62 6c 65 29 29 29 3b | 20 7b 20 61 6e 64 20 73 |able)));| { and s|
|00002ee0| 74 69 63 6b 20 69 74 20 | 69 6e 74 6f 20 74 68 69 |tick it |into thi|
|00002ef0| 73 20 67 44 65 76 69 63 | 65 0d 09 09 09 09 09 09 |s gDevic|e.......|
|00002f00| 09 09 09 09 09 09 09 09 | 09 20 20 74 6f 6f 2e 20 |........|. too. |
|00002f10| 7d 0d 0d 09 09 7b 20 42 | 75 69 6c 64 20 61 20 6e |}....{ B|uild a n|
|00002f20| 65 77 20 69 54 61 62 6c | 65 20 66 6f 72 20 74 68 |ew iTabl|e for th|
|00002f30| 69 73 20 64 65 76 69 63 | 65 2c 20 62 61 73 65 64 |is devic|e, based|
|00002f40| 20 6f 6e 20 74 68 65 20 | 6e 65 77 20 63 6f 6c 6f | on the |new colo|
|00002f50| 72 20 74 61 62 6c 65 2e | 20 20 33 20 62 69 74 20 |r table.| 3 bit |
|00002f60| 72 65 73 0d 09 09 20 20 | 74 6f 20 73 61 76 65 20 |res... |to save |
|00002f70| 6f 6e 20 6d 65 6d 6f 72 | 79 20 73 69 6e 63 65 20 |on memor|y since |
|00002f80| 77 65 20 64 6f 6e d5 74 | 20 6e 65 65 64 20 61 20 |we don.t| need a |
|00002f90| 62 69 67 20 69 54 61 62 | 6c 65 20 66 6f 72 20 6f |big iTab|le for o|
|00002fa0| 75 72 20 73 74 75 66 66 | 2e 20 7d 0d 0d 09 09 09 |ur stuff|. }.....|
|00002fb0| 4d 61 6b 65 49 54 61 62 | 6c 65 28 67 64 50 4d 61 |MakeITab|le(gdPMa|
|00002fc0| 70 5e 5e 2e 70 6d 54 61 | 62 6c 65 2c 20 67 64 49 |p^^.pmTa|ble, gdI|
|00002fd0| 54 61 62 6c 65 2c 20 33 | 29 3b 0d 09 09 09 46 61 |Table, 3|);....Fa|
|00002fe0| 69 6c 4f 53 45 72 72 28 | 51 44 45 72 72 6f 72 29 |ilOSErr(|QDError)|
|00002ff0| 3b 20 09 09 09 09 09 7b | 20 6e 6f 20 6d 65 6d 6f |; .....{| no memo|
|00003000| 72 79 2c 20 77 65 20 63 | 61 6e 20 6c 65 61 76 65 |ry, we c|an leave|
|00003010| 20 68 65 72 65 2e 20 7d | 0d 0d 09 09 09 67 64 52 | here. }|.....gdR|
|00003020| 65 73 50 72 65 66 20 3a | 3d 20 33 3b 20 09 09 09 |esPref :|= 3; ...|
|00003030| 09 09 09 7b 20 70 72 65 | 66 65 72 72 65 64 20 72 |...{ pre|ferred r|
|00003040| 65 73 6f 6c 75 74 69 6f | 6e 20 69 6e 20 74 61 62 |esolutio|n in tab|
|00003050| 6c 65 2e 20 7d 0d 09 09 | 09 67 64 53 65 61 72 63 |le. }...|.gdSearc|
|00003060| 68 50 72 6f 63 20 3a 3d | 20 4e 49 4c 3b 09 09 09 |hProc :=| NIL;...|
|00003070| 09 09 7b 20 6e 6f 20 73 | 65 61 72 63 68 20 70 72 |..{ no s|earch pr|
|00003080| 6f 63 2e 20 7d 0d 09 09 | 09 67 64 43 6f 6d 70 50 |oc. }...|.gdCompP|
|00003090| 72 6f 63 20 3a 3d 20 4e | 49 4c 3b 09 09 09 09 09 |roc := N|IL;.....|
|000030a0| 09 7b 20 6e 6f 20 63 6f | 6d 70 6c 65 6d 65 6e 74 |.{ no co|mplement|
|000030b0| 20 70 72 6f 63 2e 20 7d | 0d 0d 09 09 7b 20 53 65 | proc. }|....{ Se|
|000030c0| 74 20 74 68 65 20 67 64 | 46 6c 61 67 73 20 74 6f |t the gd|Flags to|
|000030d0| 20 62 65 3a 20 63 6f 6c | 6f 72 2c 20 72 61 6d 49 | be: col|or, ramI|
|000030e0| 6e 69 74 2c 20 6e 6f 44 | 72 69 76 65 72 2c 20 73 |nit, noD|river, s|
|000030f0| 63 72 65 65 6e 41 63 74 | 69 76 65 20 7d 0d 0d 09 |creenAct|ive }...|
|00003100| 09 09 67 64 46 6c 61 67 | 73 20 3a 3d 20 6b 47 44 |..gdFlag|s := kGD|
|00003110| 46 6c 61 67 73 3b 0d 0d | 09 09 09 57 49 54 48 20 |Flags;..|...WITH |
|00003120| 67 64 50 4d 61 70 5e 5e | 20 44 4f 20 42 45 47 49 |gdPMap^^| DO BEGI|
|00003130| 4e 0d 0d 09 09 09 7b 20 | 4e 6f 77 20 73 65 74 20 |N.....{ |Now set |
|00003140| 75 70 20 74 68 65 20 66 | 69 65 6c 64 73 20 69 6e |up the f|ields in|
|00003150| 20 74 68 65 20 6f 66 66 | 73 63 72 65 65 6e 20 50 | the off|screen P|
|00003160| 69 78 4d 61 70 20 63 6f | 72 72 65 63 74 6c 79 2e |ixMap co|rrectly.|
|00003170| 20 7d 0d 0d 09 09 09 09 | 62 61 73 65 41 64 64 72 | }......|baseAddr|
|00003180| 20 3a 3d 20 66 42 69 67 | 42 75 66 66 3b 09 09 09 | := fBig|Buff;...|
|00003190| 09 7b 20 54 68 65 20 62 | 61 73 65 20 61 64 64 72 |.{ The b|ase addr|
|000031a0| 65 73 73 20 69 73 20 6f | 75 72 20 62 75 66 66 65 |ess is o|ur buffe|
|000031b0| 72 2e 20 7d 0d 09 09 09 | 09 62 6f 75 6e 64 73 20 |r. }....|.bounds |
|000031c0| 3a 3d 20 6f 66 66 42 6f | 75 6e 64 73 3b 09 09 09 |:= offBo|unds;...|
|000031d0| 09 7b 20 62 6f 75 6e 64 | 69 6e 67 20 72 65 63 74 |.{ bound|ing rect|
|000031e0| 61 6e 67 6c 65 20 74 6f | 20 6f 75 72 20 64 65 76 |angle to| our dev|
|000031f0| 69 63 65 2e 20 7d 0d 0d | 09 09 09 7b 20 4f 6e 65 |ice. }..|...{ One|
|00003200| 20 62 79 74 65 20 70 65 | 72 20 70 69 78 65 6c 20 | byte pe|r pixel |
|00003210| 68 6f 72 69 7a 6f 6e 74 | 61 6c 6c 79 20 69 73 20 |horizont|ally is |
|00003220| 72 6f 77 42 79 74 65 73 | 2e 20 20 2b 20 24 38 30 |rowBytes|. + $80|
|00003230| 30 30 20 74 6f 20 6d 61 | 6b 65 20 69 74 20 63 6f |00 to ma|ke it co|
|00003240| 6c 6f 72 20 70 6f 72 74 | 2e 20 7d 0d 0d 09 09 09 |lor port|. }.....|
|00003250| 09 7b 24 50 75 73 68 7d | 20 7b 24 4f 56 2d 7d 09 |.{$Push}| {$OV-}.|
|00003260| 09 09 09 09 09 7b 20 48 | 61 76 65 20 74 6f 20 74 |.....{ H|ave to t|
|00003270| 75 72 6e 20 6f 66 66 20 | 6f 76 65 72 66 6c 6f 77 |urn off |overflow|
|00003280| 20 63 68 65 63 6b 69 6e | 67 2c 20 6f 72 0d 09 09 | checkin|g, or...|
|00003290| 09 09 09 09 09 09 09 09 | 09 09 09 20 65 6c 73 65 |........|... else|
|000032a0| 20 50 61 73 63 61 6c 20 | 63 6f 6d 70 6c 61 69 6e | Pascal |complain|
|000032b0| 73 20 74 68 61 74 20 79 | 6f 75 d5 72 65 0d 09 09 |s that y|ou.re...|
|000032c0| 09 09 09 09 09 09 09 09 | 09 09 09 20 74 72 79 69 |........|... tryi|
|000032d0| 6e 67 20 74 6f 20 70 75 | 74 20 61 20 4c 6f 6e 67 |ng to pu|t a Long|
|000032e0| 69 6e 74 20 69 6e 74 6f | 20 61 20 49 6e 74 65 67 |int into| a Integ|
|000032f0| 65 72 0d 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |er......|........|
|00003300| 20 66 69 65 6c 64 2e 20 | 7d 0d 09 09 09 09 72 6f | field. |}.....ro|
|00003310| 77 42 79 74 65 73 20 3a | 3d 20 42 4f 72 28 64 6f |wBytes :|= BOr(do|
|00003320| 63 57 2c 20 24 30 30 30 | 30 38 30 30 30 29 3b 0d |cW, $000|08000);.|
|00003330| 09 09 09 09 7b 24 50 6f | 70 7d 0d 09 09 09 09 70 |....{$Po|p}.....p|
|00003340| 69 78 65 6c 53 69 7a 65 | 20 3a 3d 20 38 3b 0d 09 |ixelSize| := 8;..|
|00003350| 09 09 09 63 6d 70 43 6f | 75 6e 74 20 3a 3d 20 31 |...cmpCo|unt := 1|
|00003360| 3b 0d 09 09 09 09 63 6d | 70 53 69 7a 65 20 3a 3d |;.....cm|pSize :=|
|00003370| 20 38 3b 0d 09 09 09 45 | 4e 44 3b 09 09 09 09 09 | 8;....E|ND;.....|
|00003380| 09 09 09 09 7b 20 57 49 | 54 48 20 67 64 50 4d 61 |....{ WI|TH gdPMa|
|00003390| 70 5e 5e 20 7d 0d 0d 09 | 09 09 67 64 52 65 63 74 |p^^ }...|..gdRect|
|000033a0| 20 3a 3d 20 6f 66 66 42 | 6f 75 6e 64 73 3b 09 09 | := offB|ounds;..|
|000033b0| 09 09 09 7b 20 74 68 65 | 20 62 6f 75 6e 64 69 6e |...{ the| boundin|
|000033c0| 67 20 72 65 63 74 61 6e | 67 6c 65 20 66 6f 72 20 |g rectan|gle for |
|000033d0| 67 44 65 76 69 63 65 2c | 0d 09 09 09 09 09 09 09 |gDevice,|........|
|000033e0| 09 09 09 09 09 09 20 74 | 6f 6f 2e 20 7d 0d 09 09 |...... t|oo. }...|
|000033f0| 45 4e 44 3b 09 09 09 09 | 09 09 09 09 09 09 7b 20 |END;....|......{ |
|00003400| 57 49 54 48 20 66 4f 66 | 66 44 65 76 69 63 65 20 |WITH fOf|fDevice |
|00003410| 7d 0d 0d 09 7b 20 4e 6f | 77 20 75 6e 6c 6f 63 6b |}...{ No|w unlock|
|00003420| 20 74 68 65 20 67 44 65 | 76 69 63 65 20 68 61 6e | the gDe|vice han|
|00003430| 64 6c 65 2e 20 20 54 68 | 65 20 73 79 73 74 65 6d |dle. Th|e system|
|00003440| 20 63 61 6e 20 75 73 65 | 20 69 74 20 75 6e 6c 6f | can use| it unlo|
|00003450| 63 6b 65 64 20 61 73 20 | 77 65 6c 6c 20 61 73 0d |cked as |well as.|
|00003460| 09 20 20 6c 6f 63 6b 65 | 64 20 73 6f 20 77 65 20 |. locke|d so we |
|00003470| 74 72 79 20 74 6f 20 68 | 65 6c 70 20 61 76 6f 69 |try to h|elp avoi|
|00003480| 64 20 66 72 61 67 6d 65 | 6e 74 61 74 69 6f 6e 2e |d fragme|ntation.|
|00003490| 20 7d 0d 0d 09 09 48 55 | 6e 4c 6f 63 6b 28 48 61 | }....HU|nLock(Ha|
|000034a0| 6e 64 6c 65 28 66 4f 66 | 66 44 65 76 69 63 65 29 |ndle(fOf|fDevice)|
|000034b0| 29 3b 0d 0d 09 7b 20 59 | 6f 77 2c 20 74 68 61 74 |);...{ Y|ow, that|
|000034c0| 20 77 61 73 20 72 6f 75 | 67 68 2e 20 4e 6f 77 20 | was rou|gh. Now |
|000034d0| 77 65 20 68 61 76 65 20 | 61 20 66 75 6c 6c 79 20 |we have |a fully |
|000034e0| 69 6e 69 74 69 61 6c 69 | 7a 65 64 20 67 44 65 76 |initiali|zed gDev|
|000034f0| 69 63 65 20 6f 66 66 73 | 63 72 65 65 6e 20 77 69 |ice offs|creen wi|
|00003500| 74 68 0d 09 20 20 69 74 | 73 20 6f 77 6e 20 63 6f |th.. it|s own co|
|00003510| 6c 6f 72 20 74 61 62 6c | 65 2e 20 41 6c 6c 20 63 |lor tabl|e. All c|
|00003520| 6f 6c 6f 72 20 6d 61 70 | 70 69 6e 67 20 73 68 6f |olor map|ping sho|
|00003530| 75 6c 64 20 62 65 20 64 | 6f 6e 65 20 75 73 69 6e |uld be d|one usin|
|00003540| 67 20 74 68 61 74 20 63 | 6f 6c 6f 72 20 74 61 62 |g that c|olor tab|
|00003550| 6c 65 2c 0d 09 20 20 61 | 6e 64 20 74 68 65 20 64 |le,.. a|nd the d|
|00003560| 72 61 77 69 6e 67 20 77 | 65 20 64 6f 20 74 6f 20 |rawing w|e do to |
|00003570| 69 74 20 73 68 6f 75 6c | 64 20 6d 61 6b 65 20 74 |it shoul|d make t|
|00003580| 68 65 20 73 61 76 65 64 | 20 70 69 63 74 75 72 65 |he saved| picture|
|00003590| 73 20 73 61 76 65 20 74 | 68 61 74 20 63 6f 6c 6f |s save t|hat colo|
|000035a0| 72 0d 09 20 20 74 61 62 | 6c 65 20 74 6f 6f 2e 20 |r.. tab|le too. |
|000035b0| 53 65 74 20 74 6f 20 6f | 75 72 20 6e 65 77 20 64 |Set to o|ur new d|
|000035c0| 65 76 69 63 65 20 73 6f | 20 77 65 20 4f 70 65 6e |evice so| we Open|
|000035d0| 43 50 6f 72 74 20 77 69 | 74 68 20 61 6c 6c 20 6e |CPort wi|th all n|
|000035e0| 65 77 20 70 61 72 61 6d | 65 74 65 72 73 2e 20 54 |ew param|eters. T|
|000035f0| 68 69 73 0d 09 20 20 69 | 73 20 73 61 66 65 2c 20 |his.. i|s safe, |
|00003600| 62 65 63 61 75 73 65 20 | 77 65 20 73 61 76 65 64 |because |we saved|
|00003610| 20 74 68 65 20 6f 6c 64 | 20 64 65 76 69 63 65 20 | the old| device |
|00003620| 77 68 65 6e 20 77 65 20 | 65 6e 74 65 72 65 64 20 |when we |entered |
|00003630| 74 68 69 73 20 72 6f 75 | 74 69 6e 65 2e 20 7d 0d |this rou|tine. }.|
|00003640| 0d 09 09 53 65 74 47 44 | 65 76 69 63 65 28 66 4f |...SetGD|evice(fO|
|00003650| 66 66 44 65 76 69 63 65 | 29 3b 0d 0d 09 7b 20 41 |ffDevice|);...{ A|
|00003660| 66 74 65 72 20 61 6c 6c | 20 6f 66 20 74 68 61 74 |fter all| of that|
|00003670| 2c 20 77 65 20 68 61 76 | 65 20 61 20 67 44 65 76 |, we hav|e a gDev|
|00003680| 69 63 65 20 77 68 69 63 | 68 20 69 73 20 63 6f 6d |ice whic|h is com|
|00003690| 70 6c 65 74 65 2e 20 20 | 49 74 20 68 61 73 20 74 |plete. |It has t|
|000036a0| 68 65 20 63 6f 6c 6f 72 | 0d 09 20 20 74 61 62 6c |he color|.. tabl|
|000036b0| 65 20 77 65 20 77 61 6e | 74 20 61 73 73 6f 63 69 |e we wan|t associ|
|000036c0| 61 74 65 64 20 77 69 74 | 68 20 69 74 20 66 72 6f |ated wit|h it fro|
|000036d0| 6d 20 74 68 65 20 43 4c | 55 54 2e 20 49 74 20 68 |m the CL|UT. It h|
|000036e0| 61 73 20 74 68 65 20 72 | 69 67 68 74 0d 09 20 20 |as the r|ight.. |
|000036f0| 70 6f 72 74 42 69 74 73 | 2e 62 61 73 65 41 64 64 |portBits|.baseAdd|
|00003700| 72 2c 20 61 6e 64 20 74 | 68 65 20 72 69 67 68 74 |r, and t|he right|
|00003710| 20 73 69 7a 65 2e 20 49 | 74 20 69 73 20 63 6f 6d | size. I|t is com|
|00003720| 70 6c 65 74 65 2c 20 65 | 78 63 65 70 74 20 74 68 |plete, e|xcept th|
|00003730| 61 74 20 77 65 20 63 61 | 6e d5 74 0d 09 20 20 64 |at we ca|n.t.. d|
|00003740| 72 61 77 20 69 6e 74 6f | 20 69 74 20 75 73 69 6e |raw into| it usin|
|00003750| 67 20 6e 6f 72 6d 61 6c | 20 63 61 6c 6c 73 2e 20 |g normal| calls. |
|00003760| 57 65 20 74 68 75 73 20 | 6e 65 65 64 20 74 6f 20 |We thus |need to |
|00003770| 6d 61 6b 65 20 61 20 70 | 6f 72 74 20 74 68 61 74 |make a p|ort that|
|00003780| 20 77 65 20 63 61 6e 20 | 75 73 65 2e 0d 09 20 20 | we can |use... |
|00003790| 57 65 20 68 61 76 65 20 | 73 65 74 20 74 68 65 20 |We have |set the |
|000037a0| 67 44 65 76 69 63 65 20 | 74 6f 20 62 65 20 74 68 |gDevice |to be th|
|000037b0| 65 20 6f 6e 65 20 77 65 | 20 6a 75 73 74 20 63 72 |e one we| just cr|
|000037c0| 65 61 74 65 64 2c 20 61 | 6e 64 20 77 68 65 6e 20 |eated, a|nd when |
|000037d0| 77 65 20 4f 70 65 6e 43 | 50 6f 72 74 0d 09 20 20 |we OpenC|Port.. |
|000037e0| 77 65 20 77 69 6c 6c 20 | 67 65 74 20 61 20 63 6f |we will |get a co|
|000037f0| 70 79 20 6f 66 20 74 68 | 65 20 66 69 65 6c 64 73 |py of th|e fields|
|00003800| 20 77 65 20 6a 75 73 74 | 20 73 65 74 20 75 70 20 | we just| set up |
|00003810| 69 6e 20 6f 75 72 20 6e | 65 77 20 67 44 65 76 69 |in our n|ew gDevi|
|00003820| 63 65 2e 20 54 68 65 20 | 70 6f 72 74 0d 09 20 20 |ce. The |port.. |
|00003830| 69 73 20 73 69 6d 70 6c | 79 20 61 6e 20 69 6e 74 |is simpl|y an int|
|00003840| 65 72 66 61 63 65 20 69 | 6e 74 6f 20 6f 75 72 20 |erface i|nto our |
|00003850| 67 44 65 76 69 63 65 20 | 66 6f 72 20 64 72 61 77 |gDevice |for draw|
|00003860| 69 6e 67 2e 20 41 6c 6c | 6f 63 61 74 65 20 61 20 |ing. All|ocate a |
|00003870| 70 6f 72 74 20 72 65 63 | 6f 72 64 0d 09 20 20 6f |port rec|ord.. o|
|00003880| 6e 20 74 68 65 20 68 65 | 61 70 20 61 73 20 61 20 |n the he|ap as a |
|00003890| 70 6f 69 6e 74 65 72 20 | 28 70 65 72 6d 61 6e 65 |pointer |(permane|
|000038a0| 6e 74 20 6d 65 6d 6f 72 | 79 20 75 73 61 67 65 29 |nt memor|y usage)|
|000038b0| 2e 20 41 66 74 65 72 20 | 69 74 20 6c 69 76 65 73 |. After |it lives|
|000038c0| 2c 20 74 68 6f 75 67 68 | 20 77 65 0d 09 20 20 77 |, though| we.. w|
|000038d0| 61 6e 74 20 74 6f 20 63 | 68 65 63 6b 20 69 66 20 |ant to c|heck if |
|000038e0| 77 65 20 68 61 76 65 20 | 6e 6f 20 6d 6f 72 65 20 |we have |no more |
|000038f0| 72 65 73 65 72 76 65 2c | 20 61 6e 64 20 69 66 20 |reserve,| and if |
|00003900| 73 6f 20 77 65 20 6d 75 | 73 74 20 62 61 67 20 74 |so we mu|st bag t|
|00003910| 68 69 73 0d 09 20 20 64 | 6f 63 75 6d 65 6e 74 2e |his.. d|ocument.|
|00003920| 20 7d 0d 0d 09 09 66 4f | 66 66 50 6f 72 74 20 3a | }....fO|ffPort :|
|00003930| 3d 20 43 47 72 61 66 50 | 74 72 28 4e 65 77 50 74 |= CGrafP|tr(NewPt|
|00003940| 72 28 53 69 7a 65 4f 66 | 28 43 47 72 61 66 50 6f |r(SizeOf|(CGrafPo|
|00003950| 72 74 29 29 29 3b 0d 09 | 09 46 61 69 6c 4e 49 4c |rt)));..|.FailNIL|
|00003960| 28 66 4f 66 66 50 6f 72 | 74 29 3b 09 09 09 09 09 |(fOffPor|t);.....|
|00003970| 09 09 7b 20 64 69 64 6e | d5 74 20 67 65 74 20 69 |..{ didn|.t get i|
|00003980| 74 2c 20 6d 65 61 6e 73 | 20 77 65 20 64 69 65 2e |t, means| we die.|
|00003990| 20 7d 0d 0d 09 09 4f 70 | 65 6e 43 50 6f 72 74 28 | }....Op|enCPort(|
|000039a0| 66 4f 66 66 50 6f 72 74 | 29 3b 09 09 09 09 09 09 |fOffPort|);......|
|000039b0| 7b 20 6d 61 6b 65 20 61 | 20 6e 65 77 20 70 6f 72 |{ make a| new por|
|000039c0| 74 20 6f 66 66 73 63 72 | 65 65 6e 2e 20 7d 0d 09 |t offscr|een. }..|
|000039d0| 09 46 61 69 6c 4e 6f 52 | 65 73 65 72 76 65 3b 09 |.FailNoR|eserve;.|
|000039e0| 09 09 09 09 09 09 09 7b | 20 4d 61 6b 65 20 72 65 |.......{| Make re|
|000039f0| 73 65 72 76 65 2c 20 64 | 69 65 20 69 66 20 77 65 |serve, d|ie if we|
|00003a00| 20 63 61 6e d5 74 20 7d | 0d 0d 09 7b 20 51 75 69 | can.t }|...{ Qui|
|00003a10| 63 6b 44 72 61 77 20 69 | 73 20 6d 6f 73 74 20 6f |ckDraw i|s most o|
|00003a20| 62 6e 6f 78 69 6f 75 73 | 20 61 62 6f 75 74 20 6d |bnoxious| about m|
|00003a30| 61 6b 69 6e 67 20 61 20 | 70 6f 72 74 20 74 68 61 |aking a |port tha|
|00003a40| 74 20 69 73 20 62 69 67 | 67 65 72 20 74 68 61 6e |t is big|ger than|
|00003a50| 20 74 68 65 0d 09 20 20 | 73 63 72 65 65 6e 2c 20 | the.. |screen, |
|00003a60| 73 6f 20 77 65 20 6e 65 | 65 64 20 74 6f 20 6d 6f |so we ne|ed to mo|
|00003a70| 64 69 66 79 20 74 68 65 | 20 76 69 73 52 67 6e 20 |dify the| visRgn |
|00003a80| 74 6f 20 6d 61 6b 65 20 | 69 74 20 61 73 20 62 69 |to make |it as bi|
|00003a90| 67 20 61 73 20 6f 75 72 | 20 66 75 6c 6c 20 70 61 |g as our| full pa|
|00003aa0| 67 65 0d 09 20 20 64 6f | 63 75 6d 65 6e 74 2e 20 |ge.. do|cument. |
|00003ab0| 49 74 20 69 73 20 4f 4b | 20 74 6f 20 63 68 61 6e |It is OK| to chan|
|00003ac0| 67 65 20 74 68 69 73 20 | 70 6f 72 74 d5 73 20 76 |ge this |port.s v|
|00003ad0| 69 73 52 67 6e 20 73 69 | 6e 63 65 20 77 65 20 6f |isRgn si|nce we o|
|00003ae0| 77 6e 20 69 74 20 6f 66 | 66 73 63 72 65 65 6e 2e |wn it of|fscreen.|
|00003af0| 0d 09 20 20 54 68 69 73 | 20 69 73 20 69 6e 20 63 |.. This| is in c|
|00003b00| 61 73 65 20 77 65 20 61 | 72 65 20 6f 70 65 6e 69 |ase we a|re openi|
|00003b10| 6e 67 20 61 20 64 6f 63 | 75 6d 65 6e 74 20 6d 61 |ng a doc|ument ma|
|00003b20| 64 65 20 6f 6e 20 61 20 | 64 69 66 66 65 72 65 6e |de on a |differen|
|00003b30| 74 20 63 6f 6d 70 75 74 | 65 72 20 77 69 74 68 20 |t comput|er with |
|00003b40| 61 0d 09 20 20 62 69 67 | 67 65 72 20 73 63 72 65 |a.. big|ger scre|
|00003b50| 65 6e 2e 20 41 6c 73 6f | 2c 20 79 6f 75 20 6d 61 |en. Also|, you ma|
|00003b60| 79 20 68 61 76 65 20 73 | 65 65 6e 20 69 6e 20 49 |y have s|een in I|
|00003b70| 6e 73 69 64 65 20 4d 61 | 63 20 74 68 65 20 6e 6f |nside Ma|c the no|
|00003b80| 74 69 63 65 20 74 68 61 | 74 20 d2 74 68 65 0d 09 |tice tha|t .the..|
|00003b90| 20 20 76 69 73 52 67 6e | 20 68 61 73 20 6e 6f 20 | visRgn| has no |
|00003ba0| 65 66 66 65 63 74 20 6f | 6e 20 69 6d 61 67 65 73 |effect o|n images|
|00003bb0| 20 74 68 61 74 20 61 72 | 65 6e d5 74 20 64 69 73 | that ar|en.t dis|
|00003bc0| 70 6c 61 79 65 64 20 6f | 6e 20 74 68 65 20 73 63 |played o|n the sc|
|00003bd0| 72 65 65 6e 2e d3 20 44 | 6f 6e d5 74 0d 09 20 20 |reen.. D|on.t.. |
|00003be0| 62 65 6c 69 65 76 65 20 | 69 74 2c 20 62 65 63 61 |believe |it, beca|
|00003bf0| 75 73 65 20 69 74 20 44 | 4f 45 53 20 61 66 66 65 |use it D|OES affe|
|00003c00| 63 74 20 6f 66 66 73 63 | 72 65 65 6e 20 69 6d 61 |ct offsc|reen ima|
|00003c10| 67 65 73 2e 20 7d 0d 0d | 09 09 52 65 63 74 52 67 |ges. }..|..RectRg|
|00003c20| 6e 28 66 4f 66 66 50 6f | 72 74 5e 2e 76 69 73 52 |n(fOffPo|rt^.visR|
|00003c30| 67 6e 2c 20 6f 66 66 42 | 6f 75 6e 64 73 29 3b 0d |gn, offB|ounds);.|
|00003c40| 0d 09 7b 20 47 6f 20 77 | 68 61 70 20 6f 6e 20 74 |..{ Go w|hap on t|
|00003c50| 68 65 20 6f 74 68 65 72 | 20 70 69 65 63 65 73 20 |he other| pieces |
|00003c60| 6f 66 20 74 68 65 20 70 | 6f 72 74 20 72 65 63 6f |of the p|ort reco|
|00003c70| 72 64 20 74 6f 20 73 65 | 74 20 69 74 20 75 70 20 |rd to se|t it up |
|00003c80| 74 6f 20 62 65 20 6f 66 | 66 73 63 72 65 65 6e 2e |to be of|fscreen.|
|00003c90| 20 7d 0d 0d 09 09 66 4f | 66 66 50 6f 72 74 5e 2e | }....fO|ffPort^.|
|00003ca0| 70 6f 72 74 52 65 63 74 | 20 3a 3d 20 6f 66 66 42 |portRect| := offB|
|00003cb0| 6f 75 6e 64 73 3b 0d 0d | 09 7b 20 4f 4b 2c 20 77 |ounds;..|.{ OK, w|
|00003cc0| 65 20 68 61 76 65 20 61 | 20 6e 69 63 65 20 6e 65 |e have a| nice ne|
|00003cd0| 77 20 63 6f 6c 6f 72 20 | 70 6f 72 74 20 74 68 61 |w color |port tha|
|00003ce0| 74 20 69 73 20 6f 66 66 | 73 63 72 65 65 6e 2e 20 |t is off|screen. |
|00003cf0| 49 74 20 68 61 73 20 61 | 20 66 61 6e 63 79 20 63 |It has a| fancy c|
|00003d00| 6f 6c 6f 72 0d 09 20 20 | 74 61 62 6c 65 20 74 68 |olor.. |table th|
|00003d10| 61 74 20 63 61 6d 65 20 | 66 72 6f 6d 20 74 68 65 |at came |from the|
|00003d20| 20 63 6c 75 74 20 74 68 | 61 74 20 77 69 6c 6c 20 | clut th|at will |
|00003d30| 62 65 20 75 73 65 64 20 | 66 6f 72 20 74 68 65 20 |be used |for the |
|00003d40| 6f 77 6e 69 6e 67 20 77 | 69 6e 64 6f 77 2e 20 20 |owning w|indow. |
|00003d50| 49 74 20 69 73 0d 09 20 | 20 38 20 62 69 74 73 20 |It is.. | 8 bits |
|00003d60| 64 65 65 70 2c 20 68 61 | 73 20 32 35 36 20 63 6f |deep, ha|s 256 co|
|00003d70| 6c 6f 72 73 20 69 6e 20 | 69 74 73 20 63 6f 6c 6f |lors in |its colo|
|00003d80| 72 20 74 61 62 6c 65 20 | 61 6e 64 20 68 61 73 20 |r table |and has |
|00003d90| 61 20 72 65 63 74 20 74 | 68 65 20 73 69 7a 65 20 |a rect t|he size |
|00003da0| 70 61 73 73 65 64 0d 09 | 20 20 69 6e 2e 20 49 74 |passed..| in. It|
|00003db0| 20 68 61 73 20 6e 6f 20 | 70 69 65 63 65 73 20 74 | has no |pieces t|
|00003dc0| 68 61 74 20 61 72 65 20 | 72 65 6c 61 74 65 64 20 |hat are |related |
|00003dd0| 74 6f 20 74 68 65 20 6d | 61 69 6e 20 67 44 65 76 |to the m|ain gDev|
|00003de0| 69 63 65 2c 20 73 6f 20 | 77 65 20 73 68 6f 75 6c |ice, so |we shoul|
|00003df0| 64 6e d5 74 0d 09 20 20 | 61 6c 74 65 72 20 74 68 |dn.t.. |alter th|
|00003e00| 61 74 20 62 79 20 64 72 | 61 77 69 6e 67 20 69 6e |at by dr|awing in|
|00003e10| 20 74 68 69 73 20 70 6f | 72 74 2e 20 20 7d 0d 0d | this po|rt. }..|
|00003e20| 09 7b 20 43 6c 65 61 72 | 20 74 68 65 20 65 72 72 |.{ Clear| the err|
|00003e30| 6f 72 20 68 61 6e 64 6c | 65 72 20 63 68 61 69 6e |or handl|er chain|
|00003e40| 2c 20 77 65 20 64 6f 6e | d5 74 20 6d 61 6b 65 20 |, we don|.t make |
|00003e50| 61 6e 79 20 6d 6f 72 65 | 20 64 61 6e 67 65 72 6f |any more| dangero|
|00003e60| 75 73 20 72 65 71 75 65 | 73 74 73 2e 20 53 65 74 |us reque|sts. Set|
|00003e70| 0d 09 20 20 74 68 65 20 | 6d 65 6d 6f 72 79 20 61 |.. the |memory a|
|00003e80| 6c 6c 6f 63 61 74 69 6f | 6e 20 74 6f 20 77 68 61 |llocatio|n to wha|
|00003e90| 74 20 77 65 20 73 74 61 | 72 74 65 64 20 77 69 74 |t we sta|rted wit|
|00003ea0| 68 2e 20 7d 0d 0d 09 09 | 53 75 63 63 65 73 73 28 |h. }....|Success(|
|00003eb0| 66 69 29 3b 0d 09 09 6f | 6c 64 50 65 72 6d 20 3a |fi);...o|ldPerm :|
|00003ec0| 3d 20 50 65 72 6d 41 6c | 6c 6f 63 61 74 69 6f 6e |= PermAl|location|
|00003ed0| 28 6f 6c 64 50 65 72 6d | 29 3b 0d 0d 09 7b 20 53 |(oldPerm|);...{ S|
|00003ee0| 77 61 70 20 6f 76 65 72 | 20 74 6f 20 6f 75 72 20 |wap over| to our |
|00003ef0| 6f 66 66 73 63 72 65 65 | 6e 20 77 6f 72 6c 64 20 |offscree|n world |
|00003f00| 73 6f 20 74 68 61 74 20 | 77 65 20 63 61 6e 20 63 |so that |we can c|
|00003f10| 6c 65 61 72 20 69 74 20 | 6f 75 74 2e 20 57 65 20 |lear it |out. We |
|00003f20| 73 77 61 70 20 6f 76 65 | 72 20 74 6f 0d 09 20 20 |swap ove|r to.. |
|00003f30| 69 74 20 77 69 74 68 20 | 61 20 73 69 6d 70 6c 65 |it with |a simple|
|00003f40| 20 53 65 74 75 70 4f 66 | 66 57 6f 72 6c 64 20 63 | SetupOf|fWorld c|
|00003f50| 61 6c 6c 2c 20 77 68 69 | 63 68 20 69 73 20 4f 4b |all, whi|ch is OK|
|00003f60| 20 62 65 63 61 75 73 65 | 20 77 65 20 73 61 76 65 | because| we save|
|00003f70| 64 20 74 68 65 0d 09 20 | 20 6f 72 69 67 69 6e 61 |d the.. | origina|
|00003f80| 6c 20 64 72 61 77 69 6e | 67 20 65 6e 76 69 72 6f |l drawin|g enviro|
|00003f90| 6e 6d 65 6e 74 20 61 74 | 20 74 68 65 20 62 65 67 |nment at| the beg|
|00003fa0| 69 6e 6e 69 6e 67 20 6f | 6e 20 74 68 69 73 20 70 |inning o|n this p|
|00003fb0| 72 6f 63 65 64 75 72 65 | 20 77 69 74 68 0d 09 20 |rocedure| with.. |
|00003fc0| 20 53 61 76 65 4f 6c 64 | 57 6f 72 6c 64 2e 20 7d | SaveOld|World. }|
|00003fd0| 0d 0d 09 09 53 45 4c 46 | 2e 53 65 74 75 70 4f 66 |....SELF|.SetupOf|
|00003fe0| 66 57 6f 72 6c 64 3b 0d | 09 09 45 72 61 73 65 52 |fWorld;.|..EraseR|
|00003ff0| 65 63 74 28 6f 66 66 42 | 6f 75 6e 64 73 29 3b 09 |ect(offB|ounds);.|
|00004000| 09 09 09 09 09 7b 20 63 | 6c 65 61 72 20 74 68 65 |.....{ c|lear the|
|00004010| 20 62 69 74 73 2e 20 7d | 0d 09 09 53 45 4c 46 2e | bits. }|...SELF.|
|00004020| 52 65 73 74 6f 72 65 4f | 6c 64 57 6f 72 6c 64 3b |RestoreO|ldWorld;|
|00004030| 0d 0d 09 45 4e 44 3b 09 | 09 09 09 09 09 09 09 09 |...END;.|........|
|00004040| 09 09 7b 20 49 4f 6c 64 | 47 72 6f 73 73 4f 66 66 |..{ IOld|GrossOff|
|00004050| 73 63 72 65 65 6e 20 7d | 0d 0d 7b 2d 2d 2d 2d 2d |screen }|..{-----|
|00004060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000040a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000040b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 7d 0d 7b |--------|-----}.{|
|000040c0| 24 53 20 41 43 6c 6f 73 | 65 7d 0d 0d 50 52 4f 43 |$S AClos|e}..PROC|
|000040d0| 45 44 55 52 45 20 54 4f | 6c 64 47 72 6f 73 73 4f |EDURE TO|ldGrossO|
|000040e0| 66 66 73 63 72 65 65 6e | 2e 46 72 65 65 3b 20 4f |ffscreen|.Free; O|
|000040f0| 56 45 52 52 49 44 45 3b | 0d 0d 09 42 45 47 49 4e |VERRIDE;|...BEGIN|
|00004100| 0d 0d 09 7b 20 4b 69 6c | 6c 20 74 68 65 20 62 69 |...{ Kil|l the bi|
|00004110| 74 73 20 66 6f 72 20 74 | 68 65 20 6f 66 66 73 63 |ts for t|he offsc|
|00004120| 72 65 65 6e 20 62 69 74 | 4d 61 70 20 69 66 20 74 |reen bit|Map if t|
|00004130| 68 65 79 20 77 65 72 65 | 20 61 6c 6c 6f 63 61 74 |hey were| allocat|
|00004140| 65 64 2e 20 7d 0d 0d 09 | 09 44 69 73 70 6f 73 49 |ed. }...|.DisposI|
|00004150| 66 50 74 72 28 66 42 69 | 67 42 75 66 66 29 3b 0d |fPtr(fBi|gBuff);.|
|00004160| 0d 09 7b 20 43 6c 6f 73 | 65 20 74 68 65 20 70 6f |..{ Clos|e the po|
|00004170| 72 74 3a 20 72 65 6d 6f | 76 65 20 66 72 6f 6d 20 |rt: remo|ve from |
|00004180| 70 6f 72 74 4c 69 73 74 | 2c 20 6b 69 6c 6c 20 76 |portList|, kill v|
|00004190| 69 73 52 67 6e 20 61 6e | 64 20 63 6c 69 70 52 67 |isRgn an|d clipRg|
|000041a0| 6e 2c 20 6b 69 6c 6c 20 | 74 68 65 0d 09 20 20 70 |n, kill |the.. p|
|000041b0| 65 6e 50 69 78 50 61 74 | 20 61 6e 64 20 66 69 6c |enPixPat| and fil|
|000041c0| 6c 20 50 69 78 50 61 74 | 20 61 6e 64 20 62 61 63 |l PixPat| and bac|
|000041d0| 6b 20 50 69 78 50 61 74 | 2c 20 6b 69 6c 6c 20 50 |k PixPat|, kill P|
|000041e0| 69 78 4d 61 70 20 68 61 | 6e 64 6c 65 2c 20 6b 69 |ixMap ha|ndle, ki|
|000041f0| 6c 6c 20 67 72 61 66 56 | 61 72 73 0d 09 20 20 68 |ll grafV|ars.. h|
|00004200| 61 6e 64 6c 65 2e 20 7d | 0d 0d 09 09 49 46 20 66 |andle. }|....IF f|
|00004210| 4f 66 66 50 6f 72 74 20 | 3c 3e 20 4e 49 4c 20 54 |OffPort |<> NIL T|
|00004220| 48 45 4e 20 42 45 47 49 | 4e 0d 09 09 09 43 6c 6f |HEN BEGI|N....Clo|
|00004230| 73 65 43 50 6f 72 74 28 | 66 4f 66 66 50 6f 72 74 |seCPort(|fOffPort|
|00004240| 29 3b 0d 09 09 09 44 69 | 73 70 6f 73 50 74 72 28 |);....Di|sposPtr(|
|00004250| 50 74 72 28 66 4f 66 66 | 50 6f 72 74 29 29 3b 0d |Ptr(fOff|Port));.|
|00004260| 09 09 45 4e 44 3b 0d 0d | 09 7b 20 44 69 73 70 6f |..END;..|.{ Dispo|
|00004270| 73 47 44 65 76 69 63 65 | 20 64 6f 65 73 3a 20 6b |sGDevice| does: k|
|00004280| 69 6c 6c 73 20 74 68 65 | 20 49 54 61 62 6c 65 2c |ills the| ITable,|
|00004290| 20 6b 69 6c 6c 73 20 43 | 75 72 73 6f 72 20 65 78 | kills C|ursor ex|
|000042a0| 70 61 6e 64 65 64 20 64 | 61 74 61 20 61 6e 64 20 |panded d|ata and |
|000042b0| 6d 61 73 6b 20 69 66 0d | 09 20 20 6e 6f 6e 7a 65 |mask if.|. nonze|
|000042c0| 72 6f 2c 20 63 61 6c 6c | 73 20 44 69 73 70 6f 73 |ro, call|s Dispos|
|000042d0| 50 69 78 4d 61 70 20 69 | 66 20 67 64 50 4d 61 70 |PixMap i|f gdPMap|
|000042e0| 20 69 73 20 6e 6f 6e 7a | 65 72 6f 2c 20 74 68 65 | is nonz|ero, the|
|000042f0| 6e 20 64 69 73 70 6f 73 | 65 73 20 74 68 65 20 67 |n dispos|es the g|
|00004300| 44 65 76 69 63 65 0d 09 | 20 20 68 61 6e 64 6c 65 |Device..| handle|
|00004310| 20 69 74 73 65 6c 66 2e | 20 44 69 73 70 6f 73 50 | itself.| DisposP|
|00004320| 69 78 4d 61 70 20 6b 69 | 6c 6c 73 20 74 68 65 20 |ixMap ki|lls the |
|00004330| 63 6f 6c 6f 72 54 61 62 | 6c 65 20 61 6e 64 20 74 |colorTab|le and t|
|00004340| 68 65 20 70 69 78 4d 61 | 70 20 72 65 63 6f 72 64 |he pixMa|p record|
|00004350| 2e 20 7d 0d 0d 09 09 49 | 46 20 66 4f 66 66 44 65 |. }....I|F fOffDe|
|00004360| 76 69 63 65 20 3c 3e 20 | 4e 49 4c 20 54 48 45 4e |vice <> |NIL THEN|
|00004370| 0d 09 09 09 44 69 73 70 | 6f 73 47 44 65 76 69 63 |....Disp|osGDevic|
|00004380| 65 28 66 4f 66 66 44 65 | 76 69 63 65 29 3b 0d 0d |e(fOffDe|vice);..|
|00004390| 09 09 49 4e 48 45 52 49 | 54 45 44 20 46 72 65 65 |..INHERI|TED Free|
|000043a0| 3b 0d 0d 09 45 4e 44 3b | 0d 0d 7b 2d 2d 2d 2d 2d |;...END;|..{-----|
|000043b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000043c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000043d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000043e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000043f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 7d 0d 7b |--------|-----}.{|
|00004410| 24 53 20 41 52 65 73 7d | 0d 0d 46 55 4e 43 54 49 |$S ARes}|..FUNCTI|
|00004420| 4f 4e 20 54 4f 6c 64 47 | 72 6f 73 73 4f 66 66 73 |ON TOldG|rossOffs|
|00004430| 63 72 65 65 6e 2e 47 65 | 74 4f 66 66 44 65 76 69 |creen.Ge|tOffDevi|
|00004440| 63 65 3a 20 47 44 48 61 | 6e 64 6c 65 3b 20 4f 56 |ce: GDHa|ndle; OV|
|00004450| 45 52 52 49 44 45 3b 0d | 0d 09 42 45 47 49 4e 0d |ERRIDE;.|..BEGIN.|
|00004460| 09 09 47 65 74 4f 66 66 | 44 65 76 69 63 65 20 3a |..GetOff|Device :|
|00004470| 3d 20 66 4f 66 66 44 65 | 76 69 63 65 3b 0d 09 45 |= fOffDe|vice;..E|
|00004480| 4e 44 3b 0d 0d 7b 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ND;..{--|--------|
|00004490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044e0| 2d 2d 2d 2d 2d 2d 2d 2d | 7d 0d 7b 24 53 20 41 52 |--------|}.{$S AR|
|000044f0| 65 73 7d 0d 0d 46 55 4e | 43 54 49 4f 4e 20 54 4f |es}..FUN|CTION TO|
|00004500| 6c 64 47 72 6f 73 73 4f | 66 66 73 63 72 65 65 6e |ldGrossO|ffscreen|
|00004510| 2e 47 65 74 4f 66 66 50 | 69 78 42 61 73 65 3a 20 |.GetOffP|ixBase: |
|00004520| 50 74 72 3b 20 4f 56 45 | 52 52 49 44 45 3b 0d 0d |Ptr; OVE|RRIDE;..|
|00004530| 09 42 45 47 49 4e 0d 09 | 09 47 65 74 4f 66 66 50 |.BEGIN..|.GetOffP|
|00004540| 69 78 42 61 73 65 20 3a | 3d 20 66 42 69 67 42 75 |ixBase :|= fBigBu|
|00004550| 66 66 3b 0d 09 45 4e 44 | 3b 0d 0d 7b 2d 2d 2d 2d |ff;..END|;..{----|
|00004560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 7d 0d |--------|------}.|
|000045c0| 7b 24 53 20 41 52 65 73 | 7d 0d 0d 46 55 4e 43 54 |{$S ARes|}..FUNCT|
|000045d0| 49 4f 4e 20 54 4f 6c 64 | 47 72 6f 73 73 4f 66 66 |ION TOld|GrossOff|
|000045e0| 73 63 72 65 65 6e 2e 47 | 65 74 4f 66 66 50 6f 72 |screen.G|etOffPor|
|000045f0| 74 3a 20 43 47 72 61 66 | 50 74 72 3b 20 4f 56 45 |t: CGraf|Ptr; OVE|
|00004600| 52 52 49 44 45 3b 0d 0d | 09 42 45 47 49 4e 0d 09 |RRIDE;..|.BEGIN..|
|00004610| 09 47 65 74 4f 66 66 50 | 6f 72 74 20 3a 3d 20 43 |.GetOffP|ort := C|
|00004620| 47 72 61 66 50 74 72 28 | 66 4f 66 66 50 6f 72 74 |GrafPtr(|fOffPort|
|00004630| 29 3b 0d 09 45 4e 44 3b | 0d 0d 7b 2d 2d 2d 2d 2d |);..END;|..{-----|
|00004640| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004650| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 7d 0d 7b |--------|-----}.{|
|000046a0| 24 53 20 41 52 65 73 7d | 0d 0d 50 52 4f 43 45 44 |$S ARes}|..PROCED|
|000046b0| 55 52 45 20 54 4f 6c 64 | 47 72 6f 73 73 4f 66 66 |URE TOld|GrossOff|
|000046c0| 73 63 72 65 65 6e 2e 53 | 65 74 75 70 4f 66 66 57 |screen.S|etupOffW|
|000046d0| 6f 72 6c 64 3b 20 4f 56 | 45 52 52 49 44 45 3b 0d |orld; OV|ERRIDE;.|
|000046e0| 0d 7b 20 54 68 65 20 64 | 65 66 61 75 6c 74 20 53 |.{ The d|efault S|
|000046f0| 65 74 75 70 4f 66 66 57 | 6f 72 6c 64 20 64 6f 65 |etupOffW|orld doe|
|00004700| 73 6e d5 74 20 64 6f 20 | 61 6e 79 74 68 69 6e 67 |sn.t do |anything|
|00004710| 20 62 65 63 61 75 73 65 | 20 69 74 20 64 6f 65 73 | because| it does|
|00004720| 6e d5 74 20 6b 6e 6f 77 | 20 77 68 61 74 20 66 6f |n.t know| what fo|
|00004730| 72 6d 20 6f 75 72 0d 20 | 20 6f 66 66 73 63 72 65 |rm our. | offscre|
|00004740| 65 6e 20 6d 61 6e 61 67 | 65 6d 65 6e 74 20 74 61 |en manag|ement ta|
|00004750| 6b 65 73 2e 20 53 6f 20 | 77 65 20 68 61 76 65 20 |kes. So |we have |
|00004760| 74 6f 20 6f 76 65 72 72 | 69 64 65 20 69 74 20 68 |to overr|ide it h|
|00004770| 65 72 65 2e 20 57 65 20 | 73 65 74 20 75 70 20 6f |ere. We |set up o|
|00004780| 75 72 20 6f 66 66 73 63 | 72 65 65 6e 20 77 6f 72 |ur offsc|reen wor|
|00004790| 6c 64 0d 20 20 77 69 74 | 68 20 73 69 6d 70 6c 65 |ld. wit|h simple|
|000047a0| 20 53 65 74 47 44 65 76 | 69 63 65 20 61 6e 64 20 | SetGDev|ice and |
|000047b0| 53 65 74 50 6f 72 74 20 | 63 61 6c 6c 73 2e 20 7d |SetPort |calls. }|
|000047c0| 0d 0d 09 42 45 47 49 4e | 0d 09 09 53 65 74 47 44 |...BEGIN|...SetGD|
|000047d0| 65 76 69 63 65 28 66 4f | 66 66 44 65 76 69 63 65 |evice(fO|ffDevice|
|000047e0| 29 3b 0d 09 09 53 65 74 | 50 6f 72 74 28 47 72 61 |);...Set|Port(Gra|
|000047f0| 66 50 74 72 28 66 4f 66 | 66 50 6f 72 74 29 29 3b |fPtr(fOf|fPort));|
|00004800| 0d 09 45 4e 44 3b 0d 0d | 7b 2d 2d 2d 2d 2d 2d 2d |..END;..|{-------|
|00004810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 7d 0d 7b 24 53 |--------|---}.{$S|
|00004870| 20 41 46 69 65 6c 64 73 | 7d 0d 0d 50 52 4f 43 45 | AFields|}..PROCE|
|00004880| 44 55 52 45 20 54 4f 6c | 64 47 72 6f 73 73 4f 66 |DURE TOl|dGrossOf|
|00004890| 66 73 63 72 65 65 6e 2e | 46 69 65 6c 64 73 28 50 |fscreen.|Fields(P|
|000048a0| 52 4f 43 45 44 55 52 45 | 20 44 6f 54 6f 46 69 65 |ROCEDURE| DoToFie|
|000048b0| 6c 64 28 66 69 65 6c 64 | 4e 61 6d 65 3a 20 53 74 |ld(field|Name: St|
|000048c0| 72 32 35 35 3b 20 66 69 | 65 6c 64 41 64 64 72 3a |r255; fi|eldAddr:|
|000048d0| 20 50 74 72 3b 0d 09 09 | 09 09 09 09 09 09 09 09 | Ptr;...|........|
|000048e0| 09 09 09 09 66 69 65 6c | 64 54 79 70 65 3a 20 49 |....fiel|dType: I|
|000048f0| 6e 74 65 67 65 72 29 29 | 3b 20 4f 56 45 52 52 49 |nteger))|; OVERRI|
|00004900| 44 45 3b 0d 0d 09 42 45 | 47 49 4e 0d 09 09 44 6f |DE;...BE|GIN...Do|
|00004910| 54 6f 46 69 65 6c 64 28 | 27 54 4f 6c 64 47 72 6f |ToField(|'TOldGro|
|00004920| 73 73 4f 66 66 73 63 72 | 65 65 6e 27 2c 20 4e 49 |ssOffscr|een', NI|
|00004930| 4c 2c 20 62 43 6c 61 73 | 73 29 3b 0d 09 09 44 6f |L, bClas|s);...Do|
|00004940| 54 6f 46 69 65 6c 64 28 | 27 66 42 69 67 42 75 66 |ToField(|'fBigBuf|
|00004950| 66 27 2c 20 40 66 42 69 | 67 42 75 66 66 2c 20 62 |f', @fBi|gBuff, b|
|00004960| 50 6f 69 6e 74 65 72 29 | 3b 0d 09 09 44 6f 54 6f |Pointer)|;...DoTo|
|00004970| 46 69 65 6c 64 28 27 66 | 4f 66 66 44 65 76 69 63 |Field('f|OffDevic|
|00004980| 65 27 2c 20 40 66 4f 66 | 66 44 65 76 69 63 65 2c |e', @fOf|fDevice,|
|00004990| 20 62 48 61 6e 64 6c 65 | 29 3b 0d 09 09 44 6f 54 | bHandle|);...DoT|
|000049a0| 6f 46 69 65 6c 64 28 27 | 66 4f 66 66 50 6f 72 74 |oField('|fOffPort|
|000049b0| 27 2c 20 40 66 4f 66 66 | 50 6f 72 74 2c 20 62 47 |', @fOff|Port, bG|
|000049c0| 72 61 66 50 74 72 29 3b | 0d 0d 09 09 49 4e 48 45 |rafPtr);|....INHE|
|000049d0| 52 49 54 45 44 20 46 69 | 65 6c 64 73 28 44 6f 54 |RITED Fi|elds(DoT|
|000049e0| 6f 46 69 65 6c 64 29 3b | 0d 09 45 4e 44 3b 0d 0d |oField);|..END;..|
|000049f0| 7b 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |{-------|--------|
|00004a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004a30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004a40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004a50| 2d 2d 2d 7d 0d 7b 24 53 | 20 41 4f 70 65 6e 7d 0d |---}.{$S| AOpen}.|
|00004a60| 0d 50 52 4f 43 45 44 55 | 52 45 20 54 4e 65 77 43 |.PROCEDU|RE TNewC|
|00004a70| 6f 6f 6c 4f 66 66 73 63 | 72 65 65 6e 2e 49 4e 65 |oolOffsc|reen.INe|
|00004a80| 77 43 6f 6f 6c 4f 66 66 | 73 63 72 65 65 6e 28 6f |wCoolOff|screen(o|
|00004a90| 66 66 42 6f 75 6e 64 73 | 3a 20 52 65 63 74 3b 20 |ffBounds|: Rect; |
|00004aa0| 69 74 73 43 6f 6c 6f 72 | 73 3a 20 43 54 61 62 48 |itsColor|s: CTabH|
|00004ab0| 61 6e 64 6c 65 29 3b 0d | 0d 7b 20 43 72 65 61 74 |andle);.|.{ Creat|
|00004ac0| 65 20 61 6e 64 20 69 6e | 69 74 69 61 6c 69 7a 65 |e and in|itialize|
|00004ad0| 20 61 6e 20 6f 66 66 73 | 63 72 65 65 6e 20 64 72 | an offs|creen dr|
|00004ae0| 61 77 69 6e 67 20 65 6e | 76 69 72 6f 6e 6d 65 6e |awing en|vironmen|
|00004af0| 74 20 75 73 69 6e 67 20 | 74 68 65 20 33 32 2d 62 |t using |the 32-b|
|00004b00| 69 74 20 43 6f 6c 6f 72 | 20 51 75 69 63 6b 44 72 |it Color| QuickDr|
|00004b10| 61 77 0d 20 20 72 6f 75 | 74 69 6e 65 73 2e 20 54 |aw. rou|tines. T|
|00004b20| 68 65 20 6f 66 66 73 63 | 72 65 65 6e 20 77 6f 72 |he offsc|reen wor|
|00004b30| 6c 64 20 73 69 7a 65 20 | 69 73 20 73 70 65 63 69 |ld size |is speci|
|00004b40| 66 69 65 64 20 62 79 20 | d2 6f 66 66 42 6f 75 6e |fied by |.offBoun|
|00004b50| 64 d3 2c 20 61 6e 64 20 | 75 73 65 73 20 74 68 65 |d., and |uses the|
|00004b60| 20 63 6f 6c 6f 72 73 20 | 69 6e 0d 20 20 69 74 73 | colors |in. its|
|00004b70| 43 6f 6c 6f 72 73 2e 20 | 49 74 20 6d 61 6b 65 73 |Colors. |It makes|
|00004b80| 20 61 20 63 6f 70 79 20 | 6f 66 20 74 68 65 20 74 | a copy |of the t|
|00004b90| 61 62 6c 65 2e 20 7d 0d | 0d 09 43 4f 4e 53 54 0d |able. }.|..CONST.|
|00004ba0| 09 09 6b 42 69 74 44 65 | 70 74 68 09 09 09 3d 20 |..kBitDe|pth...= |
|00004bb0| 38 3b 0d 0d 09 56 41 52 | 0d 09 09 61 6e 4f 66 66 |8;...VAR|...anOff|
|00004bc0| 57 6f 72 6c 64 3a 20 09 | 09 47 57 6f 72 6c 64 50 |World: .|.GWorldP|
|00004bd0| 74 72 3b 0d 09 09 6f 6c | 64 50 65 72 6d 3a 09 09 |tr;...ol|dPerm:..|
|00004be0| 09 42 6f 6f 6c 65 61 6e | 3b 0d 09 09 66 69 3a 20 |.Boolean|;...fi: |
|00004bf0| 09 09 09 09 46 61 69 6c | 49 6e 66 6f 3b 0d 09 09 |....Fail|Info;...|
|00004c00| 61 75 78 44 65 76 3a 20 | 09 09 09 47 44 48 61 6e |auxDev: |...GDHan|
|00004c10| 64 6c 65 3b 0d 0d 09 7b | 20 54 68 69 73 20 69 73 |dle;...{| This is|
|00004c20| 20 74 68 65 20 65 72 72 | 6f 72 20 68 61 6e 64 6c | the err|or handl|
|00004c30| 65 72 20 66 6f 72 20 77 | 68 65 6e 20 77 65 20 67 |er for w|hen we g|
|00004c40| 65 74 20 65 72 72 6f 72 | 73 20 77 68 69 6c 65 20 |et error|s while |
|00004c50| 6d 61 6b 69 6e 67 20 61 | 20 6e 65 77 20 47 57 6f |making a| new GWo|
|00004c60| 72 6c 64 2c 0d 09 20 20 | 74 79 70 69 63 61 6c 6c |rld,.. |typicall|
|00004c70| 79 20 6c 69 6b 65 20 72 | 75 6e 6e 69 6e 67 20 6f |y like r|unning o|
|00004c80| 75 74 20 6f 66 20 6d 65 | 6d 6f 72 79 2e 20 20 53 |ut of me|mory. S|
|00004c90| 69 6e 63 65 20 77 65 20 | 63 61 6c 6c 20 74 68 65 |ince we |call the|
|00004ca0| 20 46 72 65 65 20 6d 65 | 74 68 6f 64 20 66 6f 72 | Free me|thod for|
|00004cb0| 20 74 68 65 0d 09 20 20 | 54 4f 66 66 73 63 72 65 | the.. |TOffscre|
|00004cc0| 65 6e 2c 20 77 65 20 64 | 6f 6e d5 74 20 68 61 76 |en, we d|on.t hav|
|00004cd0| 65 20 74 6f 20 63 6c 65 | 61 6e 20 74 68 69 6e 67 |e to cle|an thing|
|00004ce0| 73 20 75 70 20 6f 75 72 | 73 65 6c 76 65 73 20 68 |s up our|selves h|
|00004cf0| 65 72 65 2e 20 4a 75 73 | 74 20 73 65 74 0d 09 20 |ere. Jus|t set.. |
|00004d00| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 20 62 61 63 6b | allocat|ion back|
|00004d10| 20 74 6f 20 6e 6f 72 6d | 61 6c 20 28 66 6f 72 20 | to norm|al (for |
|00004d20| 74 68 65 20 65 72 72 6f | 72 20 6d 65 73 73 61 67 |the erro|r messag|
|00004d30| 65 20 69 74 73 65 6c 66 | 29 2c 20 73 65 74 20 74 |e itself|), set t|
|00004d40| 68 65 20 64 72 61 77 69 | 6e 67 0d 09 20 20 65 6e |he drawi|ng.. en|
|00004d50| 76 69 72 6f 6e 6d 65 6e | 74 20 62 61 63 6b 20 74 |vironmen|t back t|
|00004d60| 6f 20 6e 6f 72 6d 61 6c | 2c 20 63 61 6c 6c 20 46 |o normal|, call F|
|00004d70| 72 65 65 2c 20 61 6e 64 | 20 72 65 74 75 72 6e 2e |ree, and| return.|
|00004d80| 20 7d 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 44 | }...PRO|CEDURE D|
|00004d90| 65 61 74 68 4f 66 66 73 | 63 72 65 65 6e 28 65 72 |eathOffs|creen(er|
|00004da0| 72 6f 72 3a 20 4f 53 45 | 72 72 3b 20 6d 65 73 73 |ror: OSE|rr; mess|
|00004db0| 61 67 65 3a 20 4c 6f 6e | 67 49 6e 74 29 3b 0d 0d |age: Lon|gInt);..|
|00004dc0| 09 09 42 45 47 49 4e 0d | 09 09 09 6f 6c 64 50 65 |..BEGIN.|...oldPe|
|00004dd0| 72 6d 20 3a 3d 20 50 65 | 72 6d 41 6c 6c 6f 63 61 |rm := Pe|rmAlloca|
|00004de0| 74 69 6f 6e 28 6f 6c 64 | 50 65 72 6d 29 3b 0d 09 |tion(old|Perm);..|
|00004df0| 09 09 53 45 4c 46 2e 52 | 65 73 74 6f 72 65 4f 6c |..SELF.R|estoreOl|
|00004e00| 64 57 6f 72 6c 64 3b 0d | 09 09 09 53 45 4c 46 2e |dWorld;.|...SELF.|
|00004e10| 46 72 65 65 3b 0d 09 09 | 45 4e 44 3b 0d 0d 09 42 |Free;...|END;...B|
|00004e20| 45 47 49 4e 0d 0d 09 7b | 20 53 65 74 20 74 68 69 |EGIN...{| Set thi|
|00004e30| 73 20 74 6f 20 4e 49 4c | 2e 20 49 66 20 74 68 65 |s to NIL|. If the|
|00004e40| 72 65 20 69 73 20 61 6e | 20 65 72 72 6f 72 2c 20 |re is an| error, |
|00004e50| 74 68 65 6e 20 77 65 20 | 6e 65 65 64 20 74 6f 20 |then we |need to |
|00004e60| 66 72 65 65 20 6f 75 72 | 73 65 6c 76 65 73 2e 0d |free our|selves..|
|00004e70| 09 20 20 49 6e 20 74 68 | 61 74 20 63 61 73 65 2c |. In th|at case,|
|00004e80| 20 77 65 20 64 6f 6e d5 | 74 20 77 61 6e 74 20 6f | we don.|t want o|
|00004e90| 75 72 20 76 61 72 69 61 | 62 6c 65 73 20 68 6f 6c |ur varia|bles hol|
|00004ea0| 64 69 6e 67 20 67 61 72 | 62 61 67 65 2e 20 49 66 |ding gar|bage. If|
|00004eb0| 20 74 68 65 79 20 64 6f | 2c 20 74 68 61 74 0d 09 | they do|, that..|
|00004ec0| 20 20 67 61 72 62 61 67 | 65 20 6d 61 79 20 6c 6f | garbag|e may lo|
|00004ed0| 6f 6b 20 65 6e 6f 75 67 | 68 20 6c 69 6b 65 20 74 |ok enoug|h like t|
|00004ee0| 68 65 20 72 65 61 6c 20 | 74 68 69 6e 67 2c 20 61 |he real |thing, a|
|00004ef0| 6e 64 20 74 68 65 20 44 | 69 73 70 6f 73 65 20 72 |nd the D|ispose r|
|00004f00| 6f 75 74 69 6e 65 73 20 | 77 69 6c 6c 0d 09 20 20 |outines |will.. |
|00004f10| 74 72 79 20 74 6f 20 64 | 65 2d 61 6c 6c 6f 63 61 |try to d|e-alloca|
|00004f20| 74 65 20 6d 65 6d 6f 72 | 79 20 74 68 61 74 20 77 |te memor|y that w|
|00004f30| 61 73 20 6e 65 76 65 72 | 20 61 6c 6c 6f 63 61 74 |as never| allocat|
|00004f40| 65 64 20 74 6f 20 62 65 | 67 69 6e 20 77 69 74 68 |ed to be|gin with|
|00004f50| c9 20 7d 0d 0d 09 09 66 | 4f 66 66 57 6f 72 6c 64 |. }....f|OffWorld|
|00004f60| 20 3a 3d 20 4e 49 4c 3b | 0d 0d 09 7b 20 41 6c 6c | := NIL;|...{ All|
|00004f70| 6f 77 20 6f 75 72 20 62 | 61 73 65 20 63 6c 61 73 |ow our b|ase clas|
|00004f80| 73 20 74 6f 20 69 6e 69 | 74 69 61 6c 69 7a 65 20 |s to ini|tialize |
|00004f90| 69 74 73 65 6c 66 2e 20 | 7d 0d 0d 09 09 53 45 4c |itself. |}....SEL|
|00004fa0| 46 2e 49 4f 66 66 73 63 | 72 65 65 6e 3b 0d 0d 09 |F.IOffsc|reen;...|
|00004fb0| 7b 20 50 72 65 70 61 72 | 65 20 66 6f 72 20 66 61 |{ Prepar|e for fa|
|00004fc0| 69 6c 75 72 65 2e 20 54 | 68 65 20 6d 65 6d 6f 72 |ilure. T|he memor|
|00004fd0| 79 20 75 73 65 64 20 63 | 72 65 61 74 69 6e 67 20 |y used c|reating |
|00004fe0| 74 68 65 20 76 69 65 77 | 20 6d 75 73 74 20 62 65 |the view| must be|
|00004ff0| 20 6f 75 74 20 6f 66 20 | 70 65 72 6d 61 6e 65 6e | out of |permanen|
|00005000| 74 0d 09 20 20 6d 65 6d | 6f 72 79 20 73 6f 20 63 |t.. mem|ory so c|
|00005010| 61 6c 6c 20 50 65 72 6d | 41 6c 6c 6f 63 61 74 69 |all Perm|Allocati|
|00005020| 6f 6e 20 74 6f 20 6d 61 | 6b 65 20 69 74 20 73 6f |on to ma|ke it so|
|00005030| 2e 20 53 65 74 20 75 70 | 20 61 6e 20 65 72 72 6f |. Set up| an erro|
|00005040| 72 20 68 61 6e 64 6c 65 | 72 20 74 68 61 74 20 77 |r handle|r that w|
|00005050| 69 6c 6c 0d 09 20 20 73 | 65 74 20 69 74 20 62 61 |ill.. s|et it ba|
|00005060| 63 6b 20 69 6e 20 63 61 | 73 65 20 77 65 20 63 61 |ck in ca|se we ca|
|00005070| 6e d5 74 20 67 65 74 20 | 61 6e 79 20 6f 66 20 74 |n.t get |any of t|
|00005080| 68 61 74 20 6d 65 6d 6f | 72 79 2e 20 57 65 20 61 |hat memo|ry. We a|
|00005090| 6c 73 6f 20 74 72 79 20 | 74 6f 20 72 65 73 74 6f |lso try |to resto|
|000050a0| 72 65 20 74 68 65 0d 09 | 20 20 64 72 61 77 69 6e |re the..| drawin|
|000050b0| 67 20 77 6f 72 6c 64 20 | 74 6f 20 73 6f 6d 65 74 |g world |to somet|
|000050c0| 68 69 6e 67 20 75 73 65 | 66 75 6c 2c 20 73 6f 20 |hing use|ful, so |
|000050d0| 6d 61 6b 65 20 73 75 72 | 65 20 77 65 20 73 61 76 |make sur|e we sav|
|000050e0| 65 20 61 20 63 6f 6e 73 | 69 73 74 61 6e 74 20 77 |e a cons|istant w|
|000050f0| 6f 72 6c 64 20 62 79 0d | 09 20 20 63 61 6c 6c 69 |orld by.|. calli|
|00005100| 6e 67 20 53 61 76 65 4f | 6c 64 57 6f 72 6c 64 2e |ng SaveO|ldWorld.|
|00005110| 20 7d 0d 0d 09 09 53 45 | 4c 46 2e 53 61 76 65 4f | }....SE|LF.SaveO|
|00005120| 6c 64 57 6f 72 6c 64 3b | 0d 09 09 6f 6c 64 50 65 |ldWorld;|...oldPe|
|00005130| 72 6d 20 3a 3d 20 50 65 | 72 6d 41 6c 6c 6f 63 61 |rm := Pe|rmAlloca|
|00005140| 74 69 6f 6e 28 54 52 55 | 45 29 3b 0d 09 09 43 61 |tion(TRU|E);...Ca|
|00005150| 74 63 68 46 61 69 6c 75 | 72 65 73 28 66 69 2c 20 |tchFailu|res(fi, |
|00005160| 44 65 61 74 68 4f 66 66 | 73 63 72 65 65 6e 29 3b |DeathOff|screen);|
|00005170| 09 09 09 7b 20 61 6e 79 | 20 66 61 69 6c 75 72 65 |...{ any| failure|
|00005180| 73 20 6d 75 73 74 20 62 | 65 20 63 6c 65 61 6e 65 |s must b|e cleane|
|00005190| 64 20 75 70 2e 20 7d 0d | 0d 09 7b 20 54 69 6d 65 |d up. }.|..{ Time|
|000051a0| 20 74 6f 20 6d 61 6b 65 | 20 74 68 65 20 62 69 67 | to make| the big|
|000051b0| 2c 20 62 61 64 20 4e 65 | 77 47 57 6f 72 6c 64 20 |, bad Ne|wGWorld |
|000051c0| 63 61 6c 6c 2e 20 54 68 | 69 73 20 64 6f 65 73 20 |call. Th|is does |
|000051d0| 65 76 65 72 79 74 68 69 | 6e 67 3a 0d 0d 09 20 20 |everythi|ng:... |
|000051e0| a5 20 61 6e 4f 66 66 57 | 6f 72 6c 64 3a 20 61 20 |. anOffW|orld: a |
|000051f0| 56 41 52 20 70 61 72 61 | 6d 65 74 65 72 2e 20 4e |VAR para|meter. N|
|00005200| 65 77 47 57 6f 72 6c 64 | 20 72 65 74 75 72 6e 73 |ewGWorld| returns|
|00005210| 20 61 20 72 65 66 65 72 | 65 6e 63 65 20 74 6f 20 | a refer|ence to |
|00005220| 6f 75 72 0d 09 09 47 57 | 6f 72 6c 64 20 69 6e 20 |our...GW|orld in |
|00005230| 74 68 69 73 2e 0d 09 20 | 20 a5 20 6b 38 42 69 74 |this... | . k8Bit|
|00005240| 73 3a 20 64 65 73 69 72 | 65 64 20 64 65 70 74 68 |s: desir|ed depth|
|00005250| 20 6f 66 20 6f 75 72 20 | 6f 66 66 73 63 72 65 65 | of our |offscree|
|00005260| 6e 20 47 57 6f 72 6c 64 | 0d 09 20 20 a5 20 6f 66 |n GWorld|.. . of|
|00005270| 66 42 6f 75 6e 64 73 3a | 20 61 20 52 65 63 74 20 |fBounds:| a Rect |
|00005280| 75 73 65 64 20 66 6f 72 | 20 74 68 65 20 62 6f 75 |used for| the bou|
|00005290| 6e 64 73 2c 20 74 68 65 | 20 70 6f 72 74 52 65 63 |nds, the| portRec|
|000052a0| 74 2c 20 74 68 65 20 67 | 64 52 65 63 74 0d 09 20 |t, the g|dRect.. |
|000052b0| 20 a5 20 69 74 73 43 6f | 6c 6f 72 73 3a 20 61 20 | . itsCo|lors: a |
|000052c0| 43 54 61 62 6c 65 20 75 | 73 65 64 20 66 6f 72 20 |CTable u|sed for |
|000052d0| 63 6f 6c 6f 72 20 69 6e | 64 65 78 69 6e 67 0d 09 |color in|dexing..|
|000052e0| 20 20 a5 20 4e 49 4c 3a | 20 61 20 47 44 48 61 6e | . NIL:| a GDHan|
|000052f0| 64 6c 65 20 69 66 20 77 | 65 20 77 61 6e 74 65 64 |dle if w|e wanted|
|00005300| 20 74 6f 20 70 72 6f 76 | 69 64 20 6f 6e 65 20 6f | to prov|id one o|
|00005310| 66 20 6f 75 72 20 6f 77 | 6e 0d 09 20 20 a5 20 5b |f our ow|n.. . [|
|00005320| 5d 3a 20 74 68 65 72 65 | 20 61 72 65 20 74 77 6f |]: there| are two|
|00005330| 20 66 6c 61 67 73 20 74 | 68 61 74 20 77 65 20 63 | flags t|hat we c|
|00005340| 6f 75 6c 64 20 68 61 76 | 65 20 70 61 73 73 65 64 |ould hav|e passed|
|00005350| 20 68 65 72 65 2e 20 42 | 79 20 70 61 73 73 69 6e | here. B|y passin|
|00005360| 67 20 74 68 65 0d 09 09 | 65 6d 70 74 79 20 73 65 |g the...|empty se|
|00005370| 74 2c 20 77 65 20 61 72 | 65 20 73 61 79 69 6e 67 |t, we ar|e saying|
|00005380| 20 74 68 61 74 20 77 65 | 20 64 6f 6e d5 74 20 77 | that we| don.t w|
|00005390| 61 6e 74 20 74 68 65 20 | 50 69 78 4d 61 70 20 70 |ant the |PixMap p|
|000053a0| 75 72 67 61 62 6c 65 2c | 20 61 6e 64 0d 09 09 74 |urgable,| and...t|
|000053b0| 68 61 74 20 77 65 20 77 | 61 6e 74 20 4e 65 77 47 |hat we w|ant NewG|
|000053c0| 57 6f 72 6c 64 20 74 6f | 20 6d 61 6b 65 20 61 20 |World to| make a |
|000053d0| 47 44 65 76 69 63 65 20 | 66 6f 72 20 75 73 2e 20 |GDevice |for us. |
|000053e0| 53 69 6e 63 65 20 77 65 | d5 72 65 20 62 61 73 69 |Since we|.re basi|
|000053f0| 63 61 6c 6c 79 0d 09 09 | 6c 61 7a 79 20 28 61 6c |cally...|lazy (al|
|00005400| 6c 20 70 72 6f 67 72 61 | 6d 6d 65 72 d5 73 20 61 |l progra|mmer.s a|
|00005410| 72 65 29 2c 20 74 68 61 | 74 d5 73 20 66 69 6e 65 |re), tha|t.s fine|
|00005420| 20 77 69 74 68 20 75 73 | 2e 0d 0d 09 20 20 4e 65 | with us|.... Ne|
|00005430| 77 47 57 6f 72 6c 64 20 | 72 65 74 75 72 6e 73 20 |wGWorld |returns |
|00005440| 61 20 51 44 45 72 72 20 | 69 66 20 69 74 20 63 61 |a QDErr |if it ca|
|00005450| 6e d5 74 20 63 75 74 20 | 74 68 65 20 6d 75 73 74 |n.t cut |the must|
|00005460| 61 72 64 2e 20 7d 0d 0d | 09 09 46 61 69 6c 4f 53 |ard. }..|..FailOS|
|00005470| 45 72 72 28 4e 65 77 47 | 57 6f 72 6c 64 28 61 6e |Err(NewG|World(an|
|00005480| 4f 66 66 57 6f 72 6c 64 | 2c 20 6b 42 69 74 44 65 |OffWorld|, kBitDe|
|00005490| 70 74 68 2c 20 6f 66 66 | 42 6f 75 6e 64 73 2c 20 |pth, off|Bounds, |
|000054a0| 69 74 73 43 6f 6c 6f 72 | 73 2c 20 4e 49 4c 2c 20 |itsColor|s, NIL, |
|000054b0| 5b 5d 29 29 3b 0d 09 09 | 66 4f 66 66 57 6f 72 6c |[]));...|fOffWorl|
|000054c0| 64 20 3a 3d 20 61 6e 4f | 66 66 57 6f 72 6c 64 3b |d := anO|ffWorld;|
|000054d0| 0d 0d 09 09 61 75 78 44 | 65 76 20 3a 3d 20 47 65 |....auxD|ev := Ge|
|000054e0| 74 47 57 6f 72 6c 64 44 | 65 76 69 63 65 28 66 4f |tGWorldD|evice(fO|
|000054f0| 66 66 57 6f 72 6c 64 29 | 3b 0d 09 09 4d 61 6b 65 |ffWorld)|;...Make|
|00005500| 49 54 61 62 6c 65 28 69 | 74 73 43 6f 6c 6f 72 73 |ITable(i|tsColors|
|00005510| 2c 20 61 75 78 44 65 76 | 5e 5e 2e 67 64 49 54 61 |, auxDev|^^.gdITa|
|00005520| 62 6c 65 2c 20 33 29 3b | 20 7b 20 33 20 62 69 74 |ble, 3);| { 3 bit|
|00005530| 73 20 74 6f 20 73 61 76 | 65 20 72 6f 6f 6d 20 7d |s to sav|e room }|
|00005540| 0d 09 09 46 61 69 6c 4f | 53 45 72 72 28 51 44 45 |...FailO|SErr(QDE|
|00005550| 72 72 6f 72 29 3b 20 09 | 09 09 09 09 09 7b 20 73 |rror); .|.....{ s|
|00005560| 61 64 2c 20 68 65 20 73 | 61 79 73 20 7d 0d 0d 09 |ad, he s|ays }...|
|00005570| 7b 20 43 6c 65 61 72 20 | 74 68 65 20 65 72 72 6f |{ Clear |the erro|
|00005580| 72 20 68 61 6e 64 6c 65 | 72 20 63 68 61 69 6e 2c |r handle|r chain,|
|00005590| 20 77 65 20 64 6f 6e d5 | 74 20 6d 61 6b 65 20 61 | we don.|t make a|
|000055a0| 6e 79 20 6d 6f 72 65 20 | 64 61 6e 67 65 72 6f 75 |ny more |dangerou|
|000055b0| 73 20 72 65 71 75 65 73 | 74 73 2e 20 53 65 74 0d |s reques|ts. Set.|
|000055c0| 09 20 20 74 68 65 20 6d | 65 6d 6f 72 79 20 61 6c |. the m|emory al|
|000055d0| 6c 6f 63 61 74 69 6f 6e | 20 74 6f 20 77 68 61 74 |location| to what|
|000055e0| 20 77 65 20 73 74 61 72 | 74 65 64 20 77 69 74 68 | we star|ted with|
|000055f0| 2e 20 7d 0d 0d 09 09 6f | 6c 64 50 65 72 6d 20 3a |. }....o|ldPerm :|
|00005600| 3d 20 50 65 72 6d 41 6c | 6c 6f 63 61 74 69 6f 6e |= PermAl|location|
|00005610| 28 6f 6c 64 50 65 72 6d | 29 3b 0d 09 09 53 75 63 |(oldPerm|);...Suc|
|00005620| 63 65 73 73 28 66 69 29 | 3b 0d 0d 09 7b 20 53 77 |cess(fi)|;...{ Sw|
|00005630| 61 70 20 6f 76 65 72 20 | 74 6f 20 6f 75 72 20 6f |ap over |to our o|
|00005640| 66 66 73 63 72 65 65 6e | 20 77 6f 72 6c 64 20 73 |ffscreen| world s|
|00005650| 6f 20 74 68 61 74 20 77 | 65 20 63 61 6e 20 63 6c |o that w|e can cl|
|00005660| 65 61 72 20 69 74 20 6f | 75 74 2e 20 57 65 20 73 |ear it o|ut. We s|
|00005670| 77 61 70 20 6f 76 65 72 | 20 74 6f 0d 09 20 20 69 |wap over| to.. i|
|00005680| 74 20 77 69 74 68 20 61 | 20 73 69 6d 70 6c 65 20 |t with a| simple |
|00005690| 53 65 74 75 70 4f 66 66 | 57 6f 72 6c 64 20 63 61 |SetupOff|World ca|
|000056a0| 6c 6c 2c 20 77 68 69 63 | 68 20 69 73 20 4f 4b 20 |ll, whic|h is OK |
|000056b0| 62 65 63 61 75 73 65 20 | 77 65 20 73 61 76 65 64 |because |we saved|
|000056c0| 20 74 68 65 0d 09 20 20 | 6f 72 69 67 69 6e 61 6c | the.. |original|
|000056d0| 20 64 72 61 77 69 6e 67 | 20 65 6e 76 69 72 6f 6e | drawing| environ|
|000056e0| 6d 65 6e 74 20 61 74 20 | 74 68 65 20 62 65 67 69 |ment at |the begi|
|000056f0| 6e 6e 69 6e 67 20 6f 6e | 20 74 68 69 73 20 70 72 |nning on| this pr|
|00005700| 6f 63 65 64 75 72 65 20 | 77 69 74 68 0d 09 20 20 |ocedure |with.. |
|00005710| 53 61 76 65 4f 6c 64 57 | 6f 72 6c 64 2e 20 7d 0d |SaveOldW|orld. }.|
|00005720| 0d 09 09 53 45 4c 46 2e | 53 65 74 75 70 4f 66 66 |...SELF.|SetupOff|
|00005730| 57 6f 72 6c 64 3b 0d 09 | 09 45 72 61 73 65 52 65 |World;..|.EraseRe|
|00005740| 63 74 28 66 4f 66 66 57 | 6f 72 6c 64 5e 2e 70 6f |ct(fOffW|orld^.po|
|00005750| 72 74 52 65 63 74 29 3b | 20 09 09 09 7b 20 63 6c |rtRect);| ...{ cl|
|00005760| 65 61 72 20 74 68 65 20 | 62 69 74 73 2e 20 7d 0d |ear the |bits. }.|
|00005770| 09 09 53 45 4c 46 2e 55 | 6e 6c 6f 63 6b 54 68 65 |..SELF.U|nlockThe|
|00005780| 50 69 78 65 6c 73 3b 0d | 09 09 53 45 4c 46 2e 52 |Pixels;.|..SELF.R|
|00005790| 65 73 74 6f 72 65 4f 6c | 64 57 6f 72 6c 64 3b 0d |estoreOl|dWorld;.|
|000057a0| 0d 09 09 7b 53 65 74 50 | 61 6c 65 74 74 65 28 57 |...{SetP|alette(W|
|000057b0| 69 6e 64 6f 77 50 74 72 | 28 47 65 74 4f 66 66 50 |indowPtr|(GetOffP|
|000057c0| 6f 72 74 29 2c 20 67 50 | 61 6c 65 74 74 65 2c 20 |ort), gP|alette, |
|000057d0| 6b 44 6f 6e 74 57 61 6e | 74 55 70 64 61 74 65 73 |kDontWan|tUpdates|
|000057e0| 29 3b 7d 0d 09 45 4e 44 | 3b 0d 0d 7b 2d 2d 2d 2d |);}..END|;..{----|
|000057f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 7d 0d |--------|------}.|
|00005850| 7b 24 53 20 41 43 6c 6f | 73 65 7d 0d 0d 50 52 4f |{$S AClo|se}..PRO|
|00005860| 43 45 44 55 52 45 20 54 | 4e 65 77 43 6f 6f 6c 4f |CEDURE T|NewCoolO|
|00005870| 66 66 73 63 72 65 65 6e | 2e 46 72 65 65 3b 20 4f |ffscreen|.Free; O|
|00005880| 56 45 52 52 49 44 45 3b | 0d 0d 09 42 45 47 49 4e |VERRIDE;|...BEGIN|
|00005890| 0d 09 09 49 46 20 66 4f | 66 66 57 6f 72 6c 64 20 |...IF fO|ffWorld |
|000058a0| 3c 3e 20 4e 49 4c 20 54 | 48 45 4e 0d 09 09 09 44 |<> NIL T|HEN....D|
|000058b0| 69 73 70 6f 73 65 47 57 | 6f 72 6c 64 28 66 4f 66 |isposeGW|orld(fOf|
|000058c0| 66 57 6f 72 6c 64 29 3b | 0d 09 09 49 4e 48 45 52 |fWorld);|...INHER|
|000058d0| 49 54 45 44 20 46 72 65 | 65 3b 0d 09 45 4e 44 3b |ITED Fre|e;..END;|
|000058e0| 0d 0d 7b 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..{-----|--------|
|000058f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005940| 2d 2d 2d 2d 2d 7d 0d 7b | 24 53 20 41 52 65 73 7d |-----}.{|$S ARes}|
|00005950| 0d 0d 46 55 4e 43 54 49 | 4f 4e 20 54 4e 65 77 43 |..FUNCTI|ON TNewC|
|00005960| 6f 6f 6c 4f 66 66 73 63 | 72 65 65 6e 2e 47 65 74 |oolOffsc|reen.Get|
|00005970| 4f 66 66 44 65 76 69 63 | 65 3a 20 47 44 48 61 6e |OffDevic|e: GDHan|
|00005980| 64 6c 65 3b 20 4f 56 45 | 52 52 49 44 45 3b 0d 0d |dle; OVE|RRIDE;..|
|00005990| 09 42 45 47 49 4e 0d 09 | 09 47 65 74 4f 66 66 44 |.BEGIN..|.GetOffD|
|000059a0| 65 76 69 63 65 20 3a 3d | 20 47 65 74 47 57 6f 72 |evice :=| GetGWor|
|000059b0| 6c 64 44 65 76 69 63 65 | 28 66 4f 66 66 57 6f 72 |ldDevice|(fOffWor|
|000059c0| 6c 64 29 3b 0d 09 45 4e | 44 3b 0d 0d 7b 2d 2d 2d |ld);..EN|D;..{---|
|000059d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000059e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000059f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 7d |--------|-------}|
|00005a30| 0d 7b 24 53 20 41 52 65 | 73 7d 0d 0d 46 55 4e 43 |.{$S ARe|s}..FUNC|
|00005a40| 54 49 4f 4e 20 54 4e 65 | 77 43 6f 6f 6c 4f 66 66 |TION TNe|wCoolOff|
|00005a50| 73 63 72 65 65 6e 2e 47 | 65 74 4f 66 66 50 69 78 |screen.G|etOffPix|
|00005a60| 42 61 73 65 3a 20 50 74 | 72 3b 20 4f 56 45 52 52 |Base: Pt|r; OVERR|
|00005a70| 49 44 45 3b 0d 0d 09 42 | 45 47 49 4e 0d 09 09 47 |IDE;...B|EGIN...G|
|00005a80| 65 74 4f 66 66 50 69 78 | 42 61 73 65 20 3a 3d 20 |etOffPix|Base := |
|00005a90| 47 65 74 50 69 78 42 61 | 73 65 41 64 64 72 28 66 |GetPixBa|seAddr(f|
|00005aa0| 4f 66 66 57 6f 72 6c 64 | 5e 2e 70 6f 72 74 50 69 |OffWorld|^.portPi|
|00005ab0| 78 4d 61 70 29 3b 0d 09 | 45 4e 44 3b 0d 0d 7b 2d |xMap);..|END;..{-|
|00005ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005b20| 2d 7d 0d 7b 24 53 20 41 | 52 65 73 7d 0d 0d 46 55 |-}.{$S A|Res}..FU|
|00005b30| 4e 43 54 49 4f 4e 20 54 | 4e 65 77 43 6f 6f 6c 4f |NCTION T|NewCoolO|
|00005b40| 66 66 73 63 72 65 65 6e | 2e 47 65 74 4f 66 66 50 |ffscreen|.GetOffP|
|00005b50| 6f 72 74 3a 20 43 47 72 | 61 66 50 74 72 3b 20 4f |ort: CGr|afPtr; O|
|00005b60| 56 45 52 52 49 44 45 3b | 0d 0d 09 42 45 47 49 4e |VERRIDE;|...BEGIN|
|00005b70| 0d 09 09 47 65 74 4f 66 | 66 50 6f 72 74 20 3a 3d |...GetOf|fPort :=|
|00005b80| 20 43 47 72 61 66 50 74 | 72 28 66 4f 66 66 57 6f | CGrafPt|r(fOffWo|
|00005b90| 72 6c 64 29 3b 0d 09 45 | 4e 44 3b 0d 0d 7b 2d 2d |rld);..E|ND;..{--|
|00005ba0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005bb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c00| 7d 0d 7b 24 53 20 41 52 | 65 73 7d 0d 0d 50 52 4f |}.{$S AR|es}..PRO|
|00005c10| 43 45 44 55 52 45 20 54 | 4e 65 77 43 6f 6f 6c 4f |CEDURE T|NewCoolO|
|00005c20| 66 66 73 63 72 65 65 6e | 2e 50 6f 73 74 44 72 61 |ffscreen|.PostDra|
|00005c30| 77 3b 20 4f 56 45 52 52 | 49 44 45 3b 0d 0d 09 42 |w; OVERR|IDE;...B|
|00005c40| 45 47 49 4e 0d 09 09 53 | 45 4c 46 2e 55 6e 6c 6f |EGIN...S|ELF.Unlo|
|00005c50| 63 6b 54 68 65 50 69 78 | 65 6c 73 3b 0d 0d 09 09 |ckThePix|els;....|
|00005c60| 49 4e 48 45 52 49 54 45 | 44 20 50 6f 73 74 44 72 |INHERITE|D PostDr|
|00005c70| 61 77 3b 0d 09 45 4e 44 | 3b 0d 0d 7b 2d 2d 2d 2d |aw;..END|;..{----|
|00005c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 7d 0d |--------|------}.|
|00005ce0| 7b 24 53 20 41 52 65 73 | 7d 0d 0d 50 52 4f 43 45 |{$S ARes|}..PROCE|
|00005cf0| 44 55 52 45 20 54 4e 65 | 77 43 6f 6f 6c 4f 66 66 |DURE TNe|wCoolOff|
|00005d00| 73 63 72 65 65 6e 2e 53 | 65 74 75 70 4f 66 66 57 |screen.S|etupOffW|
|00005d10| 6f 72 6c 64 3b 20 4f 56 | 45 52 52 49 44 45 3b 0d |orld; OV|ERRIDE;.|
|00005d20| 0d 09 42 45 47 49 4e 0d | 09 09 53 45 4c 46 2e 4c |..BEGIN.|..SELF.L|
|00005d30| 6f 63 6b 54 68 65 50 69 | 78 65 6c 73 3b 0d 09 09 |ockThePi|xels;...|
|00005d40| 53 65 74 47 57 6f 72 6c | 64 28 66 4f 66 66 57 6f |SetGWorl|d(fOffWo|
|00005d50| 72 6c 64 2c 20 4e 49 4c | 29 3b 0d 09 45 4e 44 3b |rld, NIL|);..END;|
|00005d60| 0d 0d 7b 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..{-----|--------|
|00005d70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005d90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005da0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005db0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005dc0| 2d 2d 2d 2d 2d 7d 0d 7b | 24 53 20 41 52 65 73 7d |-----}.{|$S ARes}|
|00005dd0| 0d 0d 50 52 4f 43 45 44 | 55 52 45 20 54 4e 65 77 |..PROCED|URE TNew|
|00005de0| 43 6f 6f 6c 4f 66 66 73 | 63 72 65 65 6e 2e 4c 6f |CoolOffs|creen.Lo|
|00005df0| 63 6b 54 68 65 50 69 78 | 65 6c 73 3b 0d 0d 7b 20 |ckThePix|els;..{ |
|00005e00| 43 61 6c 6c 20 33 32 2d | 62 69 74 20 43 6f 6c 6f |Call 32-|bit Colo|
|00005e10| 72 20 51 75 69 63 6b 44 | 72 61 77 d5 73 20 4c 6f |r QuickD|raw.s Lo|
|00005e20| 63 6b 50 69 78 65 6c 73 | 20 72 6f 75 74 69 6e 65 |ckPixels| routine|
|00005e30| 20 74 6f 20 6c 6f 63 6b | 20 64 6f 77 6e 20 74 68 | to lock| down th|
|00005e40| 65 20 6f 66 66 73 63 72 | 65 65 6e 20 64 61 74 61 |e offscr|een data|
|00005e50| 0d 20 20 73 74 72 75 63 | 74 75 72 65 73 2e 20 57 |. struc|tures. W|
|00005e60| 65 20 69 67 6e 6f 72 65 | 20 74 68 65 20 72 65 73 |e ignore| the res|
|00005e70| 75 6c 74 2c 20 62 65 63 | 61 75 73 65 20 74 68 65 |ult, bec|ause the|
|00005e80| 20 6f 6e 6c 79 20 6d 65 | 61 6e 69 6e 67 66 75 6c | only me|aningful|
|00005e90| 20 72 65 73 75 6c 74 20 | 28 46 41 4c 53 45 29 2c | result |(FALSE),|
|00005ea0| 20 6d 65 61 6e 73 20 74 | 68 61 74 0d 20 20 4c 6f | means t|hat. Lo|
|00005eb0| 63 6b 50 69 78 65 6c 73 | 20 74 72 69 65 64 20 74 |ckPixels| tried t|
|00005ec0| 6f 20 72 65 2d 61 6c 6c | 6f 63 61 74 65 20 73 6f |o re-all|ocate so|
|00005ed0| 6d 65 20 70 75 72 67 65 | 64 20 73 74 72 75 63 74 |me purge|d struct|
|00005ee0| 75 72 65 73 2c 20 61 6e | 64 20 66 61 69 6c 65 64 |ures, an|d failed|
|00005ef0| 2e 20 57 65 20 64 6f 6e | d5 74 20 61 6c 6c 6f 77 |. We don|.t allow|
|00005f00| 20 74 68 6f 73 65 0d 20 | 20 73 74 72 75 63 74 75 | those. | structu|
|00005f10| 72 65 73 20 74 6f 20 62 | 65 20 70 75 72 67 65 64 |res to b|e purged|
|00005f20| 20 28 77 65 20 73 70 65 | 63 69 66 69 65 64 20 74 | (we spe|cified t|
|00005f30| 68 61 74 20 77 68 65 6e | 20 77 65 20 63 61 6c 6c |hat when| we call|
|00005f40| 65 64 20 4e 65 77 47 57 | 6f 72 6c 64 29 2c 20 73 |ed NewGW|orld), s|
|00005f50| 6f 20 69 74 20 77 69 6c | 6c 20 6e 65 76 65 72 0d |o it wil|l never.|
|00005f60| 20 20 72 65 74 75 72 6e | 20 46 41 4c 53 45 20 66 | return| FALSE f|
|00005f70| 6f 72 20 75 73 2e 20 7d | 0d 0d 09 42 45 47 49 4e |or us. }|...BEGIN|
|00005f80| 0d 09 09 49 46 20 28 66 | 4f 66 66 57 6f 72 6c 64 |...IF (f|OffWorld|
|00005f90| 20 3c 3e 20 4e 49 4c 29 | 20 26 20 4c 6f 63 6b 50 | <> NIL)| & LockP|
|00005fa0| 69 78 65 6c 73 28 66 4f | 66 66 57 6f 72 6c 64 5e |ixels(fO|ffWorld^|
|00005fb0| 2e 70 6f 72 74 50 69 78 | 4d 61 70 29 20 54 48 45 |.portPix|Map) THE|
|00005fc0| 4e 3b 0d 09 45 4e 44 3b | 0d 0d 7b 2d 2d 2d 2d 2d |N;..END;|..{-----|
|00005fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005fe0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 7d 0d 7b |--------|-----}.{|
|00006030| 24 53 20 41 52 65 73 7d | 0d 0d 50 52 4f 43 45 44 |$S ARes}|..PROCED|
|00006040| 55 52 45 20 54 4e 65 77 | 43 6f 6f 6c 4f 66 66 73 |URE TNew|CoolOffs|
|00006050| 63 72 65 65 6e 2e 55 6e | 6c 6f 63 6b 54 68 65 50 |creen.Un|lockTheP|
|00006060| 69 78 65 6c 73 3b 0d 0d | 7b 20 52 65 76 65 72 73 |ixels;..|{ Revers|
|00006070| 65 20 74 68 65 20 65 66 | 66 65 63 74 20 6f 66 20 |e the ef|fect of |
|00006080| 4c 6f 63 6b 54 68 65 50 | 69 78 65 6c 73 2e 20 57 |LockTheP|ixels. W|
|00006090| 68 65 6e 20 77 65 20 61 | 72 65 20 64 72 61 77 69 |hen we a|re drawi|
|000060a0| 6e 67 20 74 6f 20 74 68 | 65 20 6f 66 66 73 63 72 |ng to th|e offscr|
|000060b0| 65 65 6e 20 50 69 78 4d | 61 70 2c 20 77 65 20 6e |een PixM|ap, we n|
|000060c0| 65 65 64 0d 20 20 69 74 | 73 20 62 69 74 20 6c 6f |eed. it|s bit lo|
|000060d0| 63 6b 65 64 20 64 6f 77 | 6e 20 73 6f 20 74 68 65 |cked dow|n so the|
|000060e0| 79 20 64 6f 6e d5 74 20 | 6d 6f 76 65 20 61 72 6f |y don.t |move aro|
|000060f0| 75 6e 64 20 77 68 65 6e | 20 77 65 20 74 72 79 20 |und when| we try |
|00006100| 74 6f 20 61 63 63 65 73 | 73 20 74 68 65 6d 2e 20 |to acces|s them. |
|00006110| 42 75 74 20 77 68 65 6e | 20 6f 75 72 0d 20 20 61 |But when| our. a|
|00006120| 74 74 65 6e 74 69 6f 6e | 20 69 73 20 65 6c 73 65 |ttention| is else|
|00006130| 77 68 65 72 65 20 61 6e | 64 20 77 65 20 61 72 65 |where an|d we are|
|00006140| 6e d5 74 20 64 72 61 77 | 69 6e 67 20 74 6f 20 74 |n.t draw|ing to t|
|00006150| 68 65 20 6f 66 66 73 63 | 72 65 65 6e 20 77 6f 72 |he offsc|reen wor|
|00006160| 6c 64 2c 20 77 65 d5 64 | 20 6c 69 6b 65 20 74 68 |ld, we.d| like th|
|00006170| 65 6d 20 74 6f 0d 20 20 | 66 6c 6f 61 74 20 61 72 |em to. |float ar|
|00006180| 6f 75 6e 64 20 69 6e 20 | 74 68 65 20 68 65 61 70 |ound in |the heap|
|00006190| 2c 20 73 6f 20 61 73 20 | 6e 6f 74 20 74 6f 20 66 |, so as |not to f|
|000061a0| 72 61 67 6d 65 6e 74 20 | 69 74 2e 20 54 68 69 73 |ragment |it. This|
|000061b0| 20 69 73 20 4f 4b 20 77 | 69 74 68 20 33 32 2d 62 | is OK w|ith 32-b|
|000061c0| 69 74 20 43 6f 6c 6f 72 | 20 51 75 69 63 6b 44 72 |it Color| QuickDr|
|000061d0| 61 77 0d 20 20 69 74 20 | 74 68 65 20 64 61 74 61 |aw. it |the data|
|000061e0| 20 69 73 20 75 6e 6c 6f | 63 6b 65 64 20 77 68 65 | is unlo|cked whe|
|000061f0| 6e 20 69 74 d5 73 20 6e | 6f 74 20 6c 6f 6f 6b 69 |n it.s n|ot looki|
|00006200| 6e 67 2e 20 7d 0d 0d 09 | 42 45 47 49 4e 0d 09 09 |ng. }...|BEGIN...|
|00006210| 49 46 20 66 4f 66 66 57 | 6f 72 6c 64 20 3c 3e 20 |IF fOffW|orld <> |
|00006220| 4e 49 4c 20 54 48 45 4e | 0d 09 09 09 55 6e 6c 6f |NIL THEN|....Unlo|
|00006230| 63 6b 50 69 78 65 6c 73 | 28 66 4f 66 66 57 6f 72 |ckPixels|(fOffWor|
|00006240| 6c 64 5e 2e 70 6f 72 74 | 50 69 78 4d 61 70 29 3b |ld^.port|PixMap);|
|00006250| 0d 09 45 4e 44 3b 0d 0d | 7b 2d 2d 2d 2d 2d 2d 2d |..END;..|{-------|
|00006260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 7d 0d 7b 24 53 |--------|---}.{$S|
|000062c0| 20 41 46 69 65 6c 64 73 | 7d 0d 0d 50 52 4f 43 45 | AFields|}..PROCE|
|000062d0| 44 55 52 45 20 54 4e 65 | 77 43 6f 6f 6c 4f 66 66 |DURE TNe|wCoolOff|
|000062e0| 73 63 72 65 65 6e 2e 46 | 69 65 6c 64 73 28 50 52 |screen.F|ields(PR|
|000062f0| 4f 43 45 44 55 52 45 20 | 44 6f 54 6f 46 69 65 6c |OCEDURE |DoToFiel|
|00006300| 64 28 66 69 65 6c 64 4e | 61 6d 65 3a 20 53 74 72 |d(fieldN|ame: Str|
|00006310| 32 35 35 3b 20 66 69 65 | 6c 64 41 64 64 72 3a 20 |255; fie|ldAddr: |
|00006320| 50 74 72 3b 0d 09 09 09 | 09 09 09 09 09 09 09 09 |Ptr;....|........|
|00006330| 09 09 20 20 20 66 69 65 | 6c 64 54 79 70 65 3a 20 |.. fie|ldType: |
|00006340| 49 6e 74 65 67 65 72 29 | 29 3b 20 4f 56 45 52 52 |Integer)|); OVERR|
|00006350| 49 44 45 3b 0d 0d 09 42 | 45 47 49 4e 0d 09 09 44 |IDE;...B|EGIN...D|
|00006360| 6f 54 6f 46 69 65 6c 64 | 28 27 54 4e 65 77 43 6f |oToField|('TNewCo|
|00006370| 6f 6c 4f 66 66 73 63 72 | 65 65 6e 27 2c 20 4e 49 |olOffscr|een', NI|
|00006380| 4c 2c 20 62 43 6c 61 73 | 73 29 3b 0d 09 09 44 6f |L, bClas|s);...Do|
|00006390| 54 6f 46 69 65 6c 64 28 | 27 66 4f 66 66 57 6f 72 |ToField(|'fOffWor|
|000063a0| 6c 64 27 2c 20 40 66 4f | 66 66 57 6f 72 6c 64 2c |ld', @fO|ffWorld,|
|000063b0| 20 62 47 72 61 66 50 74 | 72 29 3b 0d 0d 09 09 49 | bGrafPt|r);....I|
|000063c0| 4e 48 45 52 49 54 45 44 | 20 46 69 65 6c 64 73 28 |NHERITED| Fields(|
|000063d0| 44 6f 54 6f 46 69 65 6c | 64 29 3b 0d 09 45 4e 44 |DoToFiel|d);..END|
|000063e0| 3b 0d 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |;.......|........|
|000063f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.